Make targetEntity a property
[policy/models.git] / models-interactions / model-actors / actor.sdnr / src / test / java / org / onap / policy / controlloop / actor / sdnr / SdnrOperationTest.java
index 2bb0d94..7537fa2 100644 (file)
 
 package org.onap.policy.controlloop.actor.sdnr;
 
+import static org.assertj.core.api.Assertions.assertThat;
 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 static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.when;
 
 import java.util.Arrays;
+import java.util.List;
 import java.util.concurrent.CompletableFuture;
 import java.util.concurrent.atomic.AtomicBoolean;
 import org.junit.After;
@@ -36,9 +39,9 @@ import org.junit.AfterClass;
 import org.junit.Before;
 import org.junit.BeforeClass;
 import org.junit.Test;
-import org.onap.policy.controlloop.ControlLoopResponse;
 import org.onap.policy.controlloop.actor.test.BasicBidirectionalTopicOperation;
 import org.onap.policy.controlloop.actorserviceprovider.OperationOutcome;
+import org.onap.policy.controlloop.actorserviceprovider.OperationProperties;
 import org.onap.policy.controlloop.actorserviceprovider.controlloop.ControlLoopEventContext;
 import org.onap.policy.controlloop.actorserviceprovider.impl.BidirectionalTopicOperation.Status;
 import org.onap.policy.controlloop.actorserviceprovider.parameters.BidirectionalTopicConfig;
@@ -86,6 +89,11 @@ public class SdnrOperationTest extends BasicSdnrOperation {
         assertEquals(DEFAULT_OPERATION, operation.getName());
     }
 
+    @Test
+    public void testGetPropertyNames() {
+        assertThat(operation.getPropertyNames()).isEqualTo(List.of(OperationProperties.EVENT_PAYLOAD));
+    }
+
     @Test
     public void testMakeRequest() {
         operation.generateSubRequestId(1);
@@ -135,18 +143,7 @@ public class SdnrOperationTest extends BasicSdnrOperation {
 
         outcome = operation.start().get();
         assertEquals(PolicyResult.SUCCESS, outcome.getResult());
-
-        ControlLoopResponse clresp = outcome.getControlLoopResponse();
-        assertNotNull(clresp);
-
-        assertEquals(DEFAULT_ACTOR, clresp.getFrom());
-        assertEquals("DCAE", clresp.getTarget());
-        assertEquals(CL_NAME, clresp.getClosedLoopControlName());
-        assertEquals(EVENT_POLICY_NAME, clresp.getPolicyName());
-        assertEquals(EVENT_POLICY_VERSION, clresp.getPolicyVersion());
-        assertEquals(EVENT_VERSION, clresp.getVersion());
-        assertEquals(REQ_ID, clresp.getRequestId());
-        assertNotNull(clresp.getPayload());
+        assertTrue(outcome.getResponse() instanceof PciMessage);
     }
 
     @Test
@@ -171,7 +168,7 @@ public class SdnrOperationTest extends BasicSdnrOperation {
         assertFalse(future.isDone());
         assertTrue(guardStarted.get());
 
-        future2.complete(params.makeOutcome());
+        future2.complete(params.makeOutcome(null));
         assertTrue(executor.runAll(100));
         assertTrue(future3.isDone());
         assertEquals(PolicyResult.SUCCESS, future3.get().getResult());
@@ -239,9 +236,28 @@ public class SdnrOperationTest extends BasicSdnrOperation {
         checkOutcome();
     }
 
+    @Test
+    public void testGetEventPayload() {
+        // in neither property nor event
+        assertNull(operation.getEventPayload());
+
+        // only in event
+        event.setPayload("valueA2");
+        assertEquals("valueA2", operation.getEventPayload());
+
+        // both - should choose the property
+        operation.setProperty(OperationProperties.EVENT_PAYLOAD, "valueB");
+        assertEquals("valueB", operation.getEventPayload());
+
+        // both - should choose the property, even if it's null
+        operation.setProperty(OperationProperties.EVENT_PAYLOAD, null);
+        assertNull(operation.getEventPayload());
+    }
+
     protected void checkOutcome() {
         assertSame(outcome, operation.setOutcome(outcome, PolicyResult.SUCCESS, response));
         assertEquals(PolicyResult.SUCCESS, outcome.getResult());
         assertNotNull(outcome.getMessage());
+        assertSame(response, outcome.getResponse());
     }
 }