Modify Actors to use properties when provided
[policy/models.git] / models-interactions / model-actors / actor.vfc / src / test / java / org / onap / policy / controlloop / actor / vfc / VfcOperationTest.java
index 0b58fd4..6f8956f 100644 (file)
 
 package org.onap.policy.controlloop.actor.vfc;
 
-import static org.assertj.core.api.Assertions.assertThatExceptionOfType;
 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.assertSame;
 import static org.junit.Assert.assertTrue;
 
-import java.util.concurrent.CompletableFuture;
+import java.util.Map;
 import org.junit.Before;
 import org.junit.Test;
 import org.mockito.Mockito;
-import org.onap.policy.controlloop.actorserviceprovider.OperationOutcome;
-import org.onap.policy.controlloop.policy.PolicyResult;
+import org.onap.policy.controlloop.actorserviceprovider.controlloop.ControlLoopEventContext;
 import org.onap.policy.vfc.VfcResponse;
 import org.onap.policy.vfc.VfcResponseDescriptor;
 
@@ -55,11 +52,11 @@ public class VfcOperationTest extends BasicVfcOperation {
     }
 
     @Test
-    public void testConstructor_testGetWaitMsGet() {
+    public void testConstructor() {
         assertEquals(DEFAULT_ACTOR, oper.getActorName());
         assertEquals(DEFAULT_OPERATION, oper.getName());
         assertSame(config, oper.getConfig());
-        assertEquals(1000 * WAIT_SEC_GETS, oper.getWaitMsGet());
+        assertTrue(oper.isUsePolling());
     }
 
     @Test
@@ -68,44 +65,9 @@ public class VfcOperationTest extends BasicVfcOperation {
     }
 
     @Test
-    public void testResetGetCount() {
-        oper.resetGetCount();
-        assertEquals(0, oper.getGetCount());
-    }
-
-    @Test
-    public void testPostProcess() throws Exception {
-
-        assertThatExceptionOfType(IllegalArgumentException.class).isThrownBy(() -> {
-            oper.postProcessResponse(outcome, PATH, rawResponse, response);
-        });
-
-        response.setResponseDescriptor(new VfcResponseDescriptor());
-        response.setJobId("sampleJobId");
-
-        // null status
-        CompletableFuture<OperationOutcome> future2 = oper.postProcessResponse(outcome, PATH, rawResponse, response);
-        assertFalse(future2.isDone());
-
-        response.getResponseDescriptor().setStatus("FinisHeD");
-        future2 = oper.postProcessResponse(outcome, PATH, rawResponse, response);
-        assertTrue(future2.isDone());
-        assertSame(outcome, future2.get());
-        assertEquals(PolicyResult.SUCCESS, outcome.getResult());
-        assertSame(response, outcome.getResponse());
-
-        // failed
-        response.getResponseDescriptor().setStatus("eRRor");
-        future2 = oper.postProcessResponse(outcome, PATH, rawResponse, response);
-        assertTrue(future2.isDone());
-        assertSame(outcome, future2.get());
-        assertEquals(PolicyResult.FAILURE, outcome.getResult());
-        assertSame(response, outcome.getResponse());
-
-        // unfinished
-        response.getResponseDescriptor().setStatus("anything but finished");
-        future2 = oper.postProcessResponse(outcome, PATH, rawResponse, response);
-        assertFalse(future2.isDone());
+    public void testResetPollCount() {
+        oper.resetPollCount();
+        assertEquals(0, oper.getPollCount());
     }
 
     @Test
@@ -127,4 +89,36 @@ public class VfcOperationTest extends BasicVfcOperation {
         assertTrue(oper.isSuccess(rawResponse, 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 VfcOperation(params, config) {};
+    }
 }