Use BidirectionalTopicClient from policy-common
[policy/models.git] / models-interactions / model-actors / actorServiceProvider / src / test / java / org / onap / policy / controlloop / actorserviceprovider / parameters / HttpActorParamsTest.java
index daa0aff..9e70853 100644 (file)
 package org.onap.policy.controlloop.actorserviceprovider.parameters;
 
 import static org.assertj.core.api.Assertions.assertThat;
-import static org.assertj.core.api.Assertions.assertThatCode;
-import static org.assertj.core.api.Assertions.assertThatThrownBy;
-import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertTrue;
 
 import java.util.Map;
 import java.util.TreeMap;
 import java.util.function.Consumer;
-import java.util.function.Function;
 import org.junit.Before;
 import org.junit.Test;
 import org.onap.policy.common.parameters.ValidationResult;
+import org.onap.policy.controlloop.actorserviceprovider.Util;
 
 public class HttpActorParamsTest {
 
@@ -48,63 +43,40 @@ public class HttpActorParamsTest {
     private static final String URI1 = "uri #1";
     private static final String URI2 = "uri #2";
 
-    private Map<String, String> paths;
+    private Map<String, Map<String, Object>> operations;
     private HttpActorParams params;
 
     /**
-     * Initializes {@link #paths} with two items and {@link params} with a fully populated
-     * object.
+     * Initializes {@link #operations} with two items and {@link params} with a fully
+     * populated object.
      */
     @Before
     public void setUp() {
-        paths = new TreeMap<>();
-        paths.put(PATH1, URI1);
-        paths.put(PATH2, URI2);
+        operations = new TreeMap<>();
+        operations.put(PATH1, Map.of("path", URI1));
+        operations.put(PATH2, Map.of("path", URI2));
 
         params = makeHttpActorParams();
     }
 
-    @Test
-    public void testMakeOperationParameters() {
-        Function<String, Map<String, Object>> maker = params.makeOperationParameters(CONTAINER);
-        assertNull(maker.apply("unknown-operation"));
-
-        Map<String, Object> subparam = maker.apply(PATH1);
-        assertNotNull(subparam);
-        assertEquals("{clientName=my-client, path=uri #1, timeoutSec=10}", new TreeMap<>(subparam).toString());
-
-        subparam = maker.apply(PATH2);
-        assertNotNull(subparam);
-        assertEquals("{clientName=my-client, path=uri #2, timeoutSec=10}", new TreeMap<>(subparam).toString());
-    }
-
-    @Test
-    public void testDoValidation() {
-        assertThatCode(() -> params.doValidation(CONTAINER)).doesNotThrowAnyException();
-
-        // invalid param
-        params.setClientName(null);
-        assertThatThrownBy(() -> params.doValidation(CONTAINER))
-                        .isInstanceOf(ParameterValidationRuntimeException.class);
-    }
-
     @Test
     public void testValidate() {
         assertTrue(params.validate(CONTAINER).isValid());
 
-        testValidateField("clientName", "null", params2 -> params2.setClientName(null));
-        testValidateField("path", "null", params2 -> params2.setPath(null));
+        // only a few fields are required
+        HttpActorParams sparse = Util.translate(CONTAINER, Map.of("operation", operations, "timeoutSec", 1),
+                        HttpActorParams.class);
+        assertTrue(sparse.validate(CONTAINER).isValid());
+
+        testValidateField("operation", "null", params2 -> params2.setOperation(null));
         testValidateField("timeoutSec", "minimum", params2 -> params2.setTimeoutSec(-1));
 
         // check edge cases
         params.setTimeoutSec(0);
-        assertTrue(params.validate(CONTAINER).isValid());
+        assertFalse(params.validate(CONTAINER).isValid());
 
         params.setTimeoutSec(1);
         assertTrue(params.validate(CONTAINER).isValid());
-
-        // one path value is null
-        testValidateField(PATH2, "null", params2 -> paths.put(PATH2, null));
     }
 
     private void testValidateField(String fieldName, String expected, Consumer<HttpActorParams> makeInvalid) {
@@ -125,7 +97,7 @@ public class HttpActorParamsTest {
         HttpActorParams params2 = new HttpActorParams();
         params2.setClientName(CLIENT);
         params2.setTimeoutSec(TIMEOUT);
-        params2.setPath(paths);
+        params2.setOperation(operations);
 
         return params2;
     }