Merge "Don't always validate restServerParameters"
authorJorge Hernandez <jorge.hernandez-herrero@att.com>
Tue, 6 Oct 2020 21:37:03 +0000 (21:37 +0000)
committerGerrit Code Review <gerrit@onap.org>
Tue, 6 Oct 2020 21:37:03 +0000 (21:37 +0000)
models-sim/models-sim-dmaap/src/main/java/org/onap/policy/models/sim/dmaap/parameters/DmaapSimParameterGroup.java
models-sim/policy-models-simulators/src/main/java/org/onap/policy/models/simulators/SimulatorParameters.java
models-sim/policy-models-simulators/src/test/java/org/onap/policy/models/simulators/MainTest.java
models-sim/policy-models-simulators/src/test/java/org/onap/policy/models/simulators/SimulatorParametersTest.java
models-sim/policy-models-simulators/src/test/resources/emptyRestServer.json [new file with mode: 0644]
models-sim/policy-models-simulators/src/test/resources/invalidDmaapName.json [new file with mode: 0644]
models-sim/policy-models-simulators/src/test/resources/invalidDmaapProvider.json [moved from models-sim/policy-models-simulators/src/test/resources/invalidDmaapParameters.json with 100% similarity]
models-sim/policy-models-simulators/src/test/resources/invalidGrpcServer.json [moved from models-sim/policy-models-simulators/src/test/resources/invalidGrpcParameters.json with 100% similarity]
models-sim/policy-models-simulators/src/test/resources/invalidTopicSweep.json [new file with mode: 0644]

index 4e2841a..9719ae9 100644 (file)
@@ -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 {
index c225271..4b60d5e 100644 (file)
@@ -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) {
index abc27f4..f5598e2 100644 (file)
@@ -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");
     }
 
index f8d7433..8094ca4 100644 (file)
@@ -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 (file)
index 0000000..4a86253
--- /dev/null
@@ -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 (file)
index 0000000..889c4c8
--- /dev/null
@@ -0,0 +1,10 @@
+{
+    "dmaapProvider": {
+        "name": null,
+        "topicSweepSec":300
+    },
+    "restServers": [],
+    "topicSinks": [],
+    "topicSources": [],
+    "topicServers": []
+}
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 (file)
index 0000000..11a37d5
--- /dev/null
@@ -0,0 +1,10 @@
+{
+    "dmaapProvider": {
+        "name": "DMaaP simulator",
+        "topicSweepSec":0
+    },
+    "restServers": [],
+    "topicSinks": [],
+    "topicSources": [],
+    "topicServers": []
+}