Modify Actors to use properties when provided
[policy/models.git] / models-interactions / model-actors / actor.sdnc / src / test / java / org / onap / policy / controlloop / actor / sdnc / SdncOperationTest.java
index e0825e1..4ba12c6 100644 (file)
@@ -22,16 +22,24 @@ package org.onap.policy.controlloop.actor.sdnc;
 
 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.Collections;
 import java.util.Map;
 import java.util.TreeMap;
 import org.junit.Before;
 import org.junit.Test;
+import org.onap.policy.controlloop.actorserviceprovider.controlloop.ControlLoopEventContext;
+import org.onap.policy.sdnc.SdncHealRequest;
+import org.onap.policy.sdnc.SdncHealRequestHeaderInfo;
 import org.onap.policy.sdnc.SdncRequest;
 
 public class SdncOperationTest extends BasicSdncOperation {
 
+    private static final String MY_URI = "my-uri";
+
     private SdncRequest request;
     private SdncOperation oper;
 
@@ -42,7 +50,17 @@ public class SdncOperationTest extends BasicSdncOperation {
     public void setUp() throws Exception {
         super.setUp();
 
-        oper = new SdncOperation(params, operator) {
+        request = new SdncRequest();
+        request.setUrl(MY_URI);
+
+        SdncHealRequest healRequest = new SdncHealRequest();
+        request.setHealRequest(healRequest);
+
+        SdncHealRequestHeaderInfo headerInfo = new SdncHealRequestHeaderInfo();
+        healRequest.setRequestHeaderInfo(headerInfo);
+        headerInfo.setSvcRequestId(SUB_REQ_ID);
+
+        oper = new SdncOperation(params, config, Collections.emptyList()) {
             @Override
             protected SdncRequest makeRequest(int attempt) {
                 return request;
@@ -56,6 +74,11 @@ public class SdncOperationTest extends BasicSdncOperation {
         assertEquals(DEFAULT_OPERATION, oper.getName());
     }
 
+    @Test
+    public void testStartPreprocessorAsync() {
+        assertNotNull(oper.startPreprocessorAsync());
+    }
+
     @Test
     public void testStartOperationAsync_testStartRequestAsync() throws Exception {
         verifyOperation(oper);
@@ -80,6 +103,44 @@ public class SdncOperationTest extends BasicSdncOperation {
         assertFalse(oper.isSuccess(null, response));
     }
 
+    @Test
+    public void testGetOptProperty() {
+        // in neither property nor enrichment
+        assertNull(oper.getOptProperty("propA", "propA2"));
+
+        // both - should choose the property
+        remakeOper(Map.of("propB2", "valueB2"));
+        oper.setProperty("propB", "valueB");
+        assertEquals("valueB", oper.getOptProperty("propB", "propB2"));
+
+        // both - should choose the property, even if it's null
+        remakeOper(Map.of("propC2", "valueC2"));
+        oper.setProperty("propC", null);
+        assertNull(oper.getOptProperty("propC", "propC2"));
+
+        // only in enrichment data
+        remakeOper(Map.of("propD2", "valueD2"));
+        assertEquals("valueD2", oper.getOptProperty("propD", "propD2"));
+    }
+
+    /**
+     * Remakes the operation, with the specified A&AI enrichment data.
+     *
+     * @param aai A&AI enrichment data
+     */
+    private void remakeOper(Map<String, String> aai) {
+        event.setAai(aai);
+        context = new ControlLoopEventContext(event);
+        params = params.toBuilder().context(context).build();
+
+        oper = new SdncOperation(params, config, Collections.emptyList()) {
+            @Override
+            protected SdncRequest makeRequest(int attempt) {
+                return request;
+            }
+        };
+    }
+
     @Override
     protected Map<String, String> makeEnrichment() {
         return new TreeMap<>();