import static org.assertj.core.api.Assertions.assertThatIllegalArgumentException;
import static org.junit.Assert.assertEquals;
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.ArgumentMatchers.eq;
import static org.mockito.Mockito.verify;
import java.util.function.BiConsumer;
+import org.junit.After;
+import org.junit.AfterClass;
import org.junit.Before;
+import org.junit.BeforeClass;
import org.junit.Test;
import org.mockito.ArgumentCaptor;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
+import org.onap.policy.common.endpoints.event.comm.TopicSink;
+import org.onap.policy.common.endpoints.event.comm.TopicSource;
import org.onap.policy.common.utils.coder.StandardCoderObject;
+import org.onap.policy.simulators.TopicServer;
public class BasicBidirectionalTopicOperationTest {
private static final String ACTOR = "my-actor";
@Mock
private BiConsumer<String, StandardCoderObject> listener;
- private BasicBidirectionalTopicOperation oper;
+ private BasicBidirectionalTopicOperation<String> oper;
+ @BeforeClass
+ public static void setUpBeforeClass() throws Exception {
+ BasicBidirectionalTopicOperation.initBeforeClass(BasicBidirectionalTopicOperation.MY_SINK,
+ BasicBidirectionalTopicOperation.MY_SOURCE);
+ }
+
+ @AfterClass
+ public static void tearDownAfterClass() {
+ BasicBidirectionalTopicOperation.destroyAfterClass();
+ }
/**
* Sets up.
public void setUp() throws Exception {
MockitoAnnotations.initMocks(this);
- oper = new BasicBidirectionalTopicOperation(ACTOR, OPERATION);
- oper.setUp();
+ oper = new MyOperation(ACTOR, OPERATION);
+ oper.setUpBasic();
+ }
+
+ @After
+ public void tearDown() {
+ oper.tearDownBasic();
+ }
+
+ @Test
+ public void testTopicMgr() {
+ assertNotNull(BasicBidirectionalTopicOperation.topicMgr.getTopicHandler(
+ BasicBidirectionalTopicOperation.MY_SINK, BasicBidirectionalTopicOperation.MY_SOURCE));
}
@Test
public void testBasicBidirectionalTopicOperation() {
- oper = new BasicBidirectionalTopicOperation();
- assertEquals(BasicHttpOperation.DEFAULT_ACTOR, oper.actorName);
- assertEquals(BasicHttpOperation.DEFAULT_OPERATION, oper.operationName);
+ oper.tearDownBasic();
+
+ oper = new MyOperation();
+ oper.setUpBasic();
+
+ assertEquals(BasicOperation.DEFAULT_ACTOR, oper.actorName);
+ assertEquals(BasicOperation.DEFAULT_OPERATION, oper.operationName);
}
@Test
@Test
public void testSetUp() {
- assertNotNull(oper.topicParams);
+ assertNotNull(oper.config);
assertNotNull(oper.context);
assertNotNull(oper.outcome);
assertNotNull(oper.executor);
- assertTrue(oper.operator.isAlive());
- }
-
- @Test
- public void testMakeContext() {
- oper.makeContext();
-
- assertTrue(oper.enrichment.isEmpty());
-
- assertSame(BasicBidirectionalTopicOperation.REQ_ID, oper.event.getRequestId());
- assertSame(oper.enrichment, oper.event.getAai());
-
- assertSame(oper.event, oper.context.getEvent());
-
- assertSame(oper.context, oper.params.getContext());
- assertSame(oper.service, oper.params.getActorService());
- assertSame(oper.executor, oper.params.getExecutor());
- assertEquals(ACTOR, oper.params.getActor());
- assertEquals(OPERATION, oper.params.getOperation());
- assertEquals(BasicBidirectionalTopicOperation.TARGET_ENTITY, oper.params.getTargetEntity());
- }
-
- @Test
- public void testMakePayload() {
- assertNull(oper.makePayload());
}
@Test
public void testInitOperator() {
- oper.initOperator();
-
- assertTrue(oper.operator.isAlive());
- assertEquals(ACTOR + "." + OPERATION, oper.operator.getFullName());
- assertEquals(ACTOR, oper.operator.getActorName());
- assertEquals(OPERATION, oper.operator.getName());
- assertSame(oper.topicHandler, oper.operator.getTopicHandler());
- assertSame(oper.forwarder, oper.operator.getForwarder());
- assertSame(oper.topicParams, oper.operator.getParams());
- }
+ oper.initConfig();
- @Test
- public void testMakeEnrichment() {
- assertTrue(oper.makeEnrichment().isEmpty());
+ assertSame(oper.topicHandler, oper.config.getTopicHandler());
+ assertSame(oper.forwarder, oper.config.getForwarder());
+ assertEquals(BasicBidirectionalTopicOperation.TIMEOUT_MS, oper.config.getTimeoutMs());
}
@Test
assertThatIllegalArgumentException().isThrownBy(() -> oper.provideResponse(listener, "{invalid json"))
.withMessage("response is not a Map");
}
+
+ private static class MyOperation extends BasicBidirectionalTopicOperation<String> {
+ public MyOperation() {
+ super();
+ }
+
+ /**
+ * Constructs the object.
+ *
+ * @param actor actor name
+ * @param operation operation name
+ */
+ public MyOperation(String actor, String operation) {
+ super(actor, operation);
+ }
+
+ @Override
+ protected TopicServer<String> makeServer(TopicSink sink, TopicSource source) {
+ return new TopicServer<String>(sink, source, null, String.class) {
+ @Override
+ protected String process(String request) {
+ return null;
+ }
+ };
+ }
+ }
}