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 7e9d263..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;
@@ -38,6 +41,7 @@ import org.junit.BeforeClass;
 import org.junit.Test;
 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;
@@ -85,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);
@@ -159,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());
@@ -227,6 +236,24 @@ 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());