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;
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;
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);
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());
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());