Merge "rename controller.controllerName to controller.name"
authorJorge Hernandez <jorge.hernandez-herrero@att.com>
Wed, 7 Oct 2020 14:09:33 +0000 (14:09 +0000)
committerGerrit Code Review <gerrit@onap.org>
Wed, 7 Oct 2020 14:09:33 +0000 (14:09 +0000)
models-interactions/model-simulators/src/main/java/org/onap/policy/simulators/Util.java
models-interactions/model-simulators/src/test/java/org/onap/policy/simulators/CdsSimulatorTest.java
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 efc4036..d9fb52b 100644 (file)
@@ -52,7 +52,7 @@ public class Util {
 
     private static final String CANNOT_PROCESS_PARAMETERS = "cannot parse parameters ";
     private static final String CANNOT_CONNECT = "cannot connect to port ";
-    private static final String LOCALHOST = "localhost";
+    public static final String LOCALHOST = "localhost";
 
     private Util() {
         // Prevent instantiation of this class
index fea03e3..6e9c223 100644 (file)
@@ -45,6 +45,7 @@ import org.onap.ccsdk.cds.controllerblueprints.processing.api.ExecutionServiceIn
 import org.onap.ccsdk.cds.controllerblueprints.processing.api.ExecutionServiceOutput;
 import org.onap.policy.common.utils.coder.CoderException;
 import org.onap.policy.common.utils.coder.StandardCoder;
+import org.onap.policy.common.utils.network.NetworkUtil;
 import org.onap.policy.common.utils.resources.ResourceUtils;
 
 public class CdsSimulatorTest {
@@ -52,9 +53,15 @@ public class CdsSimulatorTest {
 
     private CdsSimulator sim;
 
+    /**
+     * Starts the simulator, allocating a unique port for each test so we don't have to
+     * wait for the prior server to shut down.
+     */
     @Before
     public void setUp() throws Exception {
-        sim = Util.buildCdsSim();
+        int port = NetworkUtil.allocPort();
+        sim = new CdsSimulator(Util.LOCALHOST, port);
+        sim.start();
     }
 
     @After
@@ -66,7 +73,7 @@ public class CdsSimulatorTest {
     public void test() throws Exception {
         String reqstr = IOUtils.toString(getClass().getResource("cds/cds.request.json"), StandardCharsets.UTF_8);
         ExecutionServiceInput request = coder.decode(reqstr, ExecutionServiceInput.class);
-        ManagedChannel channel = NettyChannelBuilder.forAddress("localhost", sim.getPort())
+        ManagedChannel channel = NettyChannelBuilder.forAddress(Util.LOCALHOST, sim.getPort())
             .nameResolverFactory(new DnsNameResolverProvider())
             .loadBalancerFactory(new PickFirstLoadBalancerProvider()).usePlaintext().build();
 
@@ -118,7 +125,7 @@ public class CdsSimulatorTest {
 
     @Test
     public void testGetResponseString() throws IOException, CoderException, ParseException {
-        CdsSimulator cdsSimulator = new CdsSimulator("localhost", sim.getPort());
+        CdsSimulator cdsSimulator = new CdsSimulator(Util.LOCALHOST, sim.getPort());
         String reqstr = ResourceUtils.getResourceAsString(
             "org/onap/policy/simulators/cds/cds.request.json");
         String responseqstr = ResourceUtils.getResourceAsString(
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": []
+}