aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJim Hahn <jrh3@att.com>2020-10-06 13:50:36 -0400
committerJim Hahn <jrh3@att.com>2020-10-06 14:26:11 -0400
commite54ce7a34fe5ae1425336aa461d70eee9386d90a (patch)
tree1dbe13fef3df207df1c99a31f240eddbe4d9d1c7
parent9591e2dd26eacd9fd44ac72c325b83ca3d3534f9 (diff)
Don't always validate restServerParameters
Restored original validation code to DmaapSimParameterGroup so it works as it originally worked (i.e., required "restServerParameters"). However, modified SimulatorParameters to validate the relevant fields directly, rather than relying on DmaapSimParameterGroup.validate(), thus eliminating all checks on "restServerParameters" when used within SimulatorParameters. Issue-ID: POLICY-2858 Change-Id: I9a09431ce3056a874bf2dba1c5bd6c418f37f69b Signed-off-by: Jim Hahn <jrh3@att.com>
-rw-r--r--models-sim/models-sim-dmaap/src/main/java/org/onap/policy/models/sim/dmaap/parameters/DmaapSimParameterGroup.java2
-rw-r--r--models-sim/policy-models-simulators/src/main/java/org/onap/policy/models/simulators/SimulatorParameters.java14
-rw-r--r--models-sim/policy-models-simulators/src/test/java/org/onap/policy/models/simulators/MainTest.java2
-rw-r--r--models-sim/policy-models-simulators/src/test/java/org/onap/policy/models/simulators/SimulatorParametersTest.java46
-rw-r--r--models-sim/policy-models-simulators/src/test/resources/emptyRestServer.json11
-rw-r--r--models-sim/policy-models-simulators/src/test/resources/invalidDmaapName.json10
-rw-r--r--models-sim/policy-models-simulators/src/test/resources/invalidDmaapProvider.json (renamed from models-sim/policy-models-simulators/src/test/resources/invalidDmaapParameters.json)0
-rw-r--r--models-sim/policy-models-simulators/src/test/resources/invalidGrpcServer.json (renamed from models-sim/policy-models-simulators/src/test/resources/invalidGrpcParameters.json)0
-rw-r--r--models-sim/policy-models-simulators/src/test/resources/invalidTopicSweep.json10
9 files changed, 84 insertions, 11 deletions
diff --git a/models-sim/models-sim-dmaap/src/main/java/org/onap/policy/models/sim/dmaap/parameters/DmaapSimParameterGroup.java b/models-sim/models-sim-dmaap/src/main/java/org/onap/policy/models/sim/dmaap/parameters/DmaapSimParameterGroup.java
index 4e2841a08..9719ae93f 100644
--- a/models-sim/models-sim-dmaap/src/main/java/org/onap/policy/models/sim/dmaap/parameters/DmaapSimParameterGroup.java
+++ b/models-sim/models-sim-dmaap/src/main/java/org/onap/policy/models/sim/dmaap/parameters/DmaapSimParameterGroup.java
@@ -25,10 +25,12 @@ import lombok.Getter;
import org.onap.policy.common.parameters.ParameterGroupImpl;
import org.onap.policy.common.parameters.annotations.Min;
import org.onap.policy.common.parameters.annotations.NotBlank;
+import org.onap.policy.common.parameters.annotations.NotNull;
/**
* Class to hold all parameters needed for the DMaaP simulator component.
*/
+@NotNull
@NotBlank
@Getter
public class DmaapSimParameterGroup extends ParameterGroupImpl {
diff --git a/models-sim/policy-models-simulators/src/main/java/org/onap/policy/models/simulators/SimulatorParameters.java b/models-sim/policy-models-simulators/src/main/java/org/onap/policy/models/simulators/SimulatorParameters.java
index c22527165..4b60d5e45 100644
--- a/models-sim/policy-models-simulators/src/main/java/org/onap/policy/models/simulators/SimulatorParameters.java
+++ b/models-sim/policy-models-simulators/src/main/java/org/onap/policy/models/simulators/SimulatorParameters.java
@@ -27,6 +27,8 @@ import lombok.Getter;
import org.onap.policy.common.endpoints.parameters.TopicParameters;
import org.onap.policy.common.parameters.BeanValidationResult;
import org.onap.policy.common.parameters.BeanValidator;
+import org.onap.policy.common.parameters.ObjectValidationResult;
+import org.onap.policy.common.parameters.ValidationStatus;
import org.onap.policy.models.sim.dmaap.parameters.DmaapSimParameterGroup;
/**
@@ -76,7 +78,17 @@ public class SimulatorParameters {
BeanValidationResult result = new BeanValidator().validateTop(containerName, this);
if (dmaapProvider != null) {
- result.addResult(dmaapProvider.validate());
+ // do not want full validation of the provider, so validate the relevant
+ // fields ourselves
+ BeanValidationResult subResult = new BeanValidationResult("dmaapProvider", dmaapProvider);
+ subResult.validateNotNull("name", dmaapProvider.getName());
+ if (dmaapProvider.getTopicSweepSec() < 1) {
+ ObjectValidationResult fieldResult =
+ new ObjectValidationResult("topicSweepSec", dmaapProvider.getTopicSweepSec(),
+ ValidationStatus.INVALID, "is below the minimum value: 1");
+ subResult.addResult(fieldResult);
+ }
+ result.addResult(subResult);
}
if (grpcServer != null) {
diff --git a/models-sim/policy-models-simulators/src/test/java/org/onap/policy/models/simulators/MainTest.java b/models-sim/policy-models-simulators/src/test/java/org/onap/policy/models/simulators/MainTest.java
index abc27f428..f5598e2e1 100644
--- a/models-sim/policy-models-simulators/src/test/java/org/onap/policy/models/simulators/MainTest.java
+++ b/models-sim/policy-models-simulators/src/test/java/org/onap/policy/models/simulators/MainTest.java
@@ -109,7 +109,7 @@ public class MainTest {
@Test
public void testConstructor() throws Exception {
- assertThatIllegalArgumentException().isThrownBy(() -> new Main("invalidDmaapParameters.json"))
+ assertThatIllegalArgumentException().isThrownBy(() -> new Main("invalidDmaapProvider.json"))
.withMessage("invalid simulator parameters");
}
diff --git a/models-sim/policy-models-simulators/src/test/java/org/onap/policy/models/simulators/SimulatorParametersTest.java b/models-sim/policy-models-simulators/src/test/java/org/onap/policy/models/simulators/SimulatorParametersTest.java
index f8d7433d2..8094ca419 100644
--- a/models-sim/policy-models-simulators/src/test/java/org/onap/policy/models/simulators/SimulatorParametersTest.java
+++ b/models-sim/policy-models-simulators/src/test/java/org/onap/policy/models/simulators/SimulatorParametersTest.java
@@ -20,6 +20,7 @@
package org.onap.policy.models.simulators;
+import static org.assertj.core.api.Assertions.assertThat;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNull;
@@ -34,23 +35,50 @@ public class SimulatorParametersTest {
@Test
public void testValidate() throws CoderException {
-
- // everything populated
SimulatorParameters params = new StandardCoder().decode(new File("src/test/resources/simParameters.json"),
SimulatorParameters.class);
assertNull(params.validate("ValidParams").getResult());
+ }
- // invalid dmaap provider
- params = new StandardCoder().decode(new File("src/test/resources/invalidDmaapParameters.json"),
- SimulatorParameters.class);
+ @Test
+ public void testValidateEmptyRestServer() throws CoderException {
+ SimulatorParameters params = new StandardCoder()
+ .decode(new File("src/test/resources/emptyRestServer.json"), SimulatorParameters.class);
+ assertNull(params.validate("ValidParams").getResult());
+ }
+
+ @Test
+ public void testValidateInvalidDmaapProvider() throws CoderException {
+ SimulatorParameters params = new StandardCoder()
+ .decode(new File("src/test/resources/invalidDmaapProvider.json"), SimulatorParameters.class);
BeanValidationResult result = params.validate("InvalidDmaapParams");
assertFalse(result.isValid());
assertNotNull(result.getResult());
+ }
- // invalid grpc server
- params = new StandardCoder().decode(new File("src/test/resources/invalidGrpcParameters.json"),
- SimulatorParameters.class);
- result = params.validate("InvalidGrpcParams");
+ @Test
+ public void testValidateInvalidDmaapName() throws CoderException {
+ SimulatorParameters params = new StandardCoder().decode(
+ new File("src/test/resources/invalidDmaapName.json"), SimulatorParameters.class);
+ BeanValidationResult result = params.validate("InvalidDmaapParams");
+ assertFalse(result.isValid());
+ assertThat(result.getResult()).contains("item \"name\" value \"null\"");
+ }
+
+ @Test
+ public void testValidateInvalidTopicSweep() throws CoderException {
+ SimulatorParameters params = new StandardCoder().decode(
+ new File("src/test/resources/invalidTopicSweep.json"), SimulatorParameters.class);
+ BeanValidationResult result = params.validate("InvalidDmaapParams");
+ assertFalse(result.isValid());
+ assertThat(result.getResult()).contains("topicSweepSec");
+ }
+
+ @Test
+ public void testValidateInvalidGrpcServer() throws CoderException {
+ SimulatorParameters params = new StandardCoder()
+ .decode(new File("src/test/resources/invalidGrpcServer.json"), SimulatorParameters.class);
+ BeanValidationResult result = params.validate("InvalidGrpcParams");
assertFalse(result.isValid());
assertNotNull(result.getResult());
}
diff --git a/models-sim/policy-models-simulators/src/test/resources/emptyRestServer.json b/models-sim/policy-models-simulators/src/test/resources/emptyRestServer.json
new file mode 100644
index 000000000..4a86253da
--- /dev/null
+++ b/models-sim/policy-models-simulators/src/test/resources/emptyRestServer.json
@@ -0,0 +1,11 @@
+{
+ "dmaapProvider": {
+ "name": "DMaaP simulator",
+ "topicSweepSec": 300,
+ "restServerParameters": {}
+ },
+ "restServers": [],
+ "topicSinks": [],
+ "topicSources": [],
+ "topicServers": []
+}
diff --git a/models-sim/policy-models-simulators/src/test/resources/invalidDmaapName.json b/models-sim/policy-models-simulators/src/test/resources/invalidDmaapName.json
new file mode 100644
index 000000000..889c4c844
--- /dev/null
+++ b/models-sim/policy-models-simulators/src/test/resources/invalidDmaapName.json
@@ -0,0 +1,10 @@
+{
+ "dmaapProvider": {
+ "name": null,
+ "topicSweepSec":300
+ },
+ "restServers": [],
+ "topicSinks": [],
+ "topicSources": [],
+ "topicServers": []
+}
diff --git a/models-sim/policy-models-simulators/src/test/resources/invalidDmaapParameters.json b/models-sim/policy-models-simulators/src/test/resources/invalidDmaapProvider.json
index ff6790144..ff6790144 100644
--- a/models-sim/policy-models-simulators/src/test/resources/invalidDmaapParameters.json
+++ b/models-sim/policy-models-simulators/src/test/resources/invalidDmaapProvider.json
diff --git a/models-sim/policy-models-simulators/src/test/resources/invalidGrpcParameters.json b/models-sim/policy-models-simulators/src/test/resources/invalidGrpcServer.json
index 86e425364..86e425364 100644
--- a/models-sim/policy-models-simulators/src/test/resources/invalidGrpcParameters.json
+++ b/models-sim/policy-models-simulators/src/test/resources/invalidGrpcServer.json
diff --git a/models-sim/policy-models-simulators/src/test/resources/invalidTopicSweep.json b/models-sim/policy-models-simulators/src/test/resources/invalidTopicSweep.json
new file mode 100644
index 000000000..11a37d5c4
--- /dev/null
+++ b/models-sim/policy-models-simulators/src/test/resources/invalidTopicSweep.json
@@ -0,0 +1,10 @@
+{
+ "dmaapProvider": {
+ "name": "DMaaP simulator",
+ "topicSweepSec":0
+ },
+ "restServers": [],
+ "topicSinks": [],
+ "topicSources": [],
+ "topicServers": []
+}