diff options
Diffstat (limited to 'feature-pooling-dmaap/src/test')
10 files changed, 64 insertions, 171 deletions
diff --git a/feature-pooling-dmaap/src/test/java/org/onap/policy/drools/pooling/DmaapManagerTest.java b/feature-pooling-dmaap/src/test/java/org/onap/policy/drools/pooling/DmaapManagerTest.java index a5688df6..6509e90e 100644 --- a/feature-pooling-dmaap/src/test/java/org/onap/policy/drools/pooling/DmaapManagerTest.java +++ b/feature-pooling-dmaap/src/test/java/org/onap/policy/drools/pooling/DmaapManagerTest.java @@ -24,16 +24,14 @@ import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; import static org.junit.Assert.fail; -import static org.mockito.Matchers.any; +import static org.mockito.ArgumentMatchers.any; import static org.mockito.Mockito.doThrow; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.never; -import static org.mockito.Mockito.reset; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; import java.util.Arrays; import java.util.LinkedList; -import java.util.Properties; import java.util.concurrent.CountDownLatch; import org.junit.AfterClass; import org.junit.Before; @@ -56,7 +54,6 @@ public class DmaapManagerTest { */ private static Factory saveFactory; - private Properties props; private Factory factory; private TopicListener listener; private FilterableTopicSource source; @@ -75,8 +72,6 @@ public class DmaapManagerTest { @Before public void setUp() throws Exception { - props = new Properties(); - listener = mock(TopicListener.class); factory = mock(Factory.class); source = mock(FilterableTopicSource.class); @@ -90,21 +85,21 @@ public class DmaapManagerTest { when(sink.send(any())).thenReturn(true); // three sources, with the desired one in the middle - when(factory.initTopicSources(props)) + when(factory.getTopicSources()) .thenReturn(Arrays.asList(mock(TopicSource.class), source, mock(TopicSource.class))); // three sinks, with the desired one in the middle - when(factory.initTopicSinks(props)) + when(factory.getTopicSinks()) .thenReturn(Arrays.asList(mock(TopicSink.class), sink, mock(TopicSink.class))); - mgr = new DmaapManager(MY_TOPIC, props); + mgr = new DmaapManager(MY_TOPIC); } @Test public void testDmaapManager() { // verify that the init methods were called - verify(factory).initTopicSinks(props); - verify(factory).initTopicSinks(props); + verify(factory).getTopicSinks(); + verify(factory).getTopicSinks(); } @Test(expected = PoolingFeatureException.class) @@ -112,15 +107,15 @@ public class DmaapManagerTest { // force error by having no topics match when(source.getTopic()).thenReturn(""); - new DmaapManager(MY_TOPIC, props); + new DmaapManager(MY_TOPIC); } @Test(expected = PoolingFeatureException.class) public void testDmaapManager_IllegalArgEx() throws PoolingFeatureException { // force error - when(factory.initTopicSources(props)).thenThrow(new IllegalArgumentException("expected")); + when(factory.getTopicSources()).thenThrow(new IllegalArgumentException("expected")); - new DmaapManager(MY_TOPIC, props); + new DmaapManager(MY_TOPIC); } @Test(expected = PoolingFeatureException.class) @@ -128,7 +123,7 @@ public class DmaapManagerTest { // force an error when setFilter() is called doThrow(new UnsupportedOperationException("expected")).when(source).setFilter(any()); - new DmaapManager(MY_TOPIC, props); + new DmaapManager(MY_TOPIC); } @Test @@ -148,25 +143,25 @@ public class DmaapManagerTest { TopicSource source2 = mock(TopicSource.class); when(source2.getTopic()).thenReturn(MY_TOPIC); - when(factory.initTopicSources(props)).thenReturn(Arrays.asList(source2)); + when(factory.getTopicSources()).thenReturn(Arrays.asList(source2)); - new DmaapManager(MY_TOPIC, props); + new DmaapManager(MY_TOPIC); } @Test(expected = PoolingFeatureException.class) public void testFindTopicSource_NotFound() throws PoolingFeatureException { // one item in list, and its topic doesn't match - when(factory.initTopicSources(props)).thenReturn(Arrays.asList(mock(TopicSource.class))); + when(factory.getTopicSources()).thenReturn(Arrays.asList(mock(TopicSource.class))); - new DmaapManager(MY_TOPIC, props); + new DmaapManager(MY_TOPIC); } @Test(expected = PoolingFeatureException.class) public void testFindTopicSource_EmptyList() throws PoolingFeatureException { // empty list - when(factory.initTopicSources(props)).thenReturn(new LinkedList<>()); + when(factory.getTopicSources()).thenReturn(new LinkedList<>()); - new DmaapManager(MY_TOPIC, props); + new DmaapManager(MY_TOPIC); } @Test @@ -177,50 +172,26 @@ public class DmaapManagerTest { @Test(expected = PoolingFeatureException.class) public void testFindTopicSink_NotFound() throws PoolingFeatureException { // one item in list, and its topic doesn't match - when(factory.initTopicSinks(props)).thenReturn(Arrays.asList(mock(TopicSink.class))); + when(factory.getTopicSinks()).thenReturn(Arrays.asList(mock(TopicSink.class))); - new DmaapManager(MY_TOPIC, props); + new DmaapManager(MY_TOPIC); } @Test(expected = PoolingFeatureException.class) public void testFindTopicSink_EmptyList() throws PoolingFeatureException { // empty list - when(factory.initTopicSinks(props)).thenReturn(new LinkedList<>()); + when(factory.getTopicSinks()).thenReturn(new LinkedList<>()); - new DmaapManager(MY_TOPIC, props); + new DmaapManager(MY_TOPIC); } @Test public void testStartPublisher() throws PoolingFeatureException { - // not started yet - verify(sink, never()).start(); - + mgr.startPublisher(); - verify(sink).start(); // restart should have no effect mgr.startPublisher(); - verify(sink).start(); - - // should be able to publish now - mgr.publish(MSG); - verify(sink).send(MSG); - } - - @Test - public void testStartPublisher_Exception() throws PoolingFeatureException { - // force exception when it starts - doThrow(new IllegalStateException("expected")).when(sink).start(); - - expectException("startPublisher,start", () -> mgr.startPublisher()); - expectException("startPublisher,publish", () -> mgr.publish(MSG)); - - // allow it to succeed this time - reset(sink); - when(sink.send(any())).thenReturn(true); - - mgr.startPublisher(); - verify(sink).start(); // should be able to publish now mgr.publish(MSG); @@ -231,18 +202,15 @@ public class DmaapManagerTest { public void testStopPublisher() throws PoolingFeatureException { // not publishing yet, so stopping should have no effect mgr.stopPublisher(0); - verify(sink, never()).stop(); // now start it mgr.startPublisher(); // this time, stop should do something mgr.stopPublisher(0); - verify(sink).stop(); // re-stopping should have no effect mgr.stopPublisher(0); - verify(sink).stop(); } @Test @@ -285,16 +253,6 @@ public class DmaapManagerTest { } @Test - public void testStopPublisher_Exception() throws PoolingFeatureException { - mgr.startPublisher(); - - // force exception when it stops - doThrow(new IllegalStateException("expected")).when(sink).stop(); - - mgr.stopPublisher(0); - } - - @Test public void testStartConsumer() { // not started yet verify(source, never()).register(any()); diff --git a/feature-pooling-dmaap/src/test/java/org/onap/policy/drools/pooling/FeatureTest.java b/feature-pooling-dmaap/src/test/java/org/onap/policy/drools/pooling/FeatureTest.java index cc588384..d453e746 100644 --- a/feature-pooling-dmaap/src/test/java/org/onap/policy/drools/pooling/FeatureTest.java +++ b/feature-pooling-dmaap/src/test/java/org/onap/policy/drools/pooling/FeatureTest.java @@ -874,11 +874,6 @@ public class FeatureTest { private static class TopicImpl implements Topic { /** - * {@code True} if this topic is alive/running, {@code false} otherwise. - */ - private boolean alive = false; - - /** * */ public TopicImpl() { @@ -917,32 +912,22 @@ public class FeatureTest { @Override public synchronized boolean start() { - if (alive) { - throw new IllegalStateException("topic already started"); - } - - alive = true; return true; } @Override public synchronized boolean stop() { - if (!alive) { - throw new IllegalStateException("topic is not running"); - } - - alive = false; return true; } @Override public synchronized void shutdown() { - alive = false; + // do nothing } @Override public synchronized boolean isAlive() { - return alive; + return true; } @Override @@ -1081,12 +1066,12 @@ public class FeatureTest { } @Override - public List<TopicSource> initTopicSources(Properties props) { + public List<TopicSource> getTopicSources() { return Arrays.asList(new TopicSourceImpl(context, true)); } @Override - public List<TopicSink> initTopicSinks(Properties props) { + public List<TopicSink> getTopicSinks() { return Arrays.asList(new TopicSinkImpl(context)); } } diff --git a/feature-pooling-dmaap/src/test/java/org/onap/policy/drools/pooling/PoolingFeatureTest.java b/feature-pooling-dmaap/src/test/java/org/onap/policy/drools/pooling/PoolingFeatureTest.java index f8f37559..32264e3a 100644 --- a/feature-pooling-dmaap/src/test/java/org/onap/policy/drools/pooling/PoolingFeatureTest.java +++ b/feature-pooling-dmaap/src/test/java/org/onap/policy/drools/pooling/PoolingFeatureTest.java @@ -271,11 +271,28 @@ public class PoolingFeatureTest { assertFalse(pool.afterStop(controller1)); verify(mgr1).afterStop(); - // ensure it has been removed from the map by re-invoking - assertFalse(pool.afterStop(controller1)); - + assertFalse(pool.afterStop(controllerDisabled)); + // count should be unchanged verify(mgr1).afterStop(); + } + + @Test + public void testAfterHalt() { + assertFalse(pool.afterHalt(controller1)); + assertFalse(pool.afterHalt(controller1)); + + verify(mgr1, never()).afterStop(); + + assertFalse(pool.afterStop(controllerDisabled)); + } + + @Test + public void testAfterShutdown() { + assertFalse(pool.afterShutdown(controller1)); + assertFalse(pool.afterShutdown(controller1)); + + verify(mgr1, never()).afterStop(); assertFalse(pool.afterStop(controllerDisabled)); } @@ -464,46 +481,6 @@ public class PoolingFeatureTest { pool.beforeStart(controller1); } - @Test - public void testDoDeleteManager() { - assertFalse(pool.afterStop(controller1)); - verify(mgr1).afterStop(); - - // ensure it has been removed from the map by re-invoking - assertFalse(pool.afterStop(controller1)); - - // count should be unchanged - verify(mgr1).afterStop(); - - - // different controller - assertFalse(pool.afterStop(controller2)); - verify(mgr2).afterStop(); - - // ensure it has been removed from the map by re-invoking - assertFalse(pool.afterStop(controller2)); - - // count should be unchanged - verify(mgr2).afterStop(); - - - assertFalse(pool.afterStop(controllerDisabled)); - } - - @Test - public void testDoDeleteManager_NotFound() { - assertFalse(pool.afterStop(controllerDisabled)); - } - - @Test(expected = PoolingFeatureRtException.class) - public void testDoDeleteManager_Ex() { - - // generate exception - doThrow(new PoolingFeatureRtException()).when(mgr1).afterStop(); - - pool.afterStop(controller1); - } - private Properties initProperties() { Properties props = new Properties(); diff --git a/feature-pooling-dmaap/src/test/java/org/onap/policy/drools/pooling/PoolingManagerImplTest.java b/feature-pooling-dmaap/src/test/java/org/onap/policy/drools/pooling/PoolingManagerImplTest.java index e0024b79..64573ab0 100644 --- a/feature-pooling-dmaap/src/test/java/org/onap/policy/drools/pooling/PoolingManagerImplTest.java +++ b/feature-pooling-dmaap/src/test/java/org/onap/policy/drools/pooling/PoolingManagerImplTest.java @@ -155,7 +155,7 @@ public class PoolingManagerImplTest { when(factory.makeEventQueue(any())).thenReturn(eventQueue); when(factory.makeClassExtractors(any())).thenReturn(extractors); - when(factory.makeDmaapManager(any(), any())).thenReturn(dmaap); + when(factory.makeDmaapManager(any())).thenReturn(dmaap); when(factory.makeScheduler()).thenReturn(sched); when(factory.canDecodeEvent(drools, TOPIC2)).thenReturn(true); when(factory.decodeEvent(drools, TOPIC2, THE_EVENT)).thenReturn(DECODED_EVENT); @@ -188,7 +188,7 @@ public class PoolingManagerImplTest { @Test public void testPoolingManagerImpl() throws Exception { - verify(factory).makeDmaapManager(any(), any()); + verify(factory).makeDmaapManager(any()); State st = mgr.getCurrent(); assertTrue(st instanceof IdleState); @@ -215,7 +215,7 @@ public class PoolingManagerImplTest { public void testPoolingManagerImpl_PoolEx() throws PoolingFeatureException { // throw an exception when we try to create the dmaap manager PoolingFeatureException ex = new PoolingFeatureException(); - when(factory.makeDmaapManager(any(), any())).thenThrow(ex); + when(factory.makeDmaapManager(any())).thenThrow(ex); PoolingFeatureRtException ex2 = expectException(PoolingFeatureRtException.class, () -> new PoolingManagerImpl(MY_HOST, controller, poolProps, active)); @@ -272,19 +272,6 @@ public class PoolingManagerImplTest { } @Test - public void testBeforeStart_DmaapEx() throws Exception { - // generate an exception - PoolingFeatureException ex = new PoolingFeatureException(); - doThrow(ex).when(dmaap).startPublisher(); - - PoolingFeatureException ex2 = expectException(PoolingFeatureException.class, () -> mgr.beforeStart()); - assertEquals(ex, ex2); - - // should never start the scheduler - verify(factory, never()).makeScheduler(); - } - - @Test public void testAfterStart() throws Exception { startMgr(); @@ -317,7 +304,13 @@ public class PoolingManagerImplTest { @Test public void testBeforeStop() throws Exception { startMgr(); + mgr.startDistributing(makeAssignments(true)); + // verify that this message is not queued + Forward msg = new Forward(mgr.getHost(), CommInfrastructure.UEB, TOPIC2, THE_EVENT, REQUEST_ID); + mgr.handle(msg); + verify(eventQueue, never()).add(msg); + mgr.beforeStop(); verify(dmaap).stopConsumer(mgr); @@ -325,6 +318,10 @@ public class PoolingManagerImplTest { verify(dmaap).publish(contains("offline")); assertTrue(mgr.getCurrent() instanceof IdleState); + + // verify that next message is queued + mgr.handle(msg); + verify(eventQueue).add(msg); } @Test diff --git a/feature-pooling-dmaap/src/test/java/org/onap/policy/drools/pooling/message/ForwardTest.java b/feature-pooling-dmaap/src/test/java/org/onap/policy/drools/pooling/message/ForwardTest.java index c56caca8..bc92fa27 100644 --- a/feature-pooling-dmaap/src/test/java/org/onap/policy/drools/pooling/message/ForwardTest.java +++ b/feature-pooling-dmaap/src/test/java/org/onap/policy/drools/pooling/message/ForwardTest.java @@ -177,11 +177,7 @@ public class ForwardTest extends BasicMessageTester<Forward> { expectCheckValidityFailure(msg -> msg.setNumHops(-1)); } - /** - * Makes a message that will pass the validity check. - * - * @return a valid Message - */ + @Override public Forward makeValidMessage() { tcreateMs = System.currentTimeMillis(); diff --git a/feature-pooling-dmaap/src/test/java/org/onap/policy/drools/pooling/message/HeartbeatTest.java b/feature-pooling-dmaap/src/test/java/org/onap/policy/drools/pooling/message/HeartbeatTest.java index da78dbe3..43f1afd4 100644 --- a/feature-pooling-dmaap/src/test/java/org/onap/policy/drools/pooling/message/HeartbeatTest.java +++ b/feature-pooling-dmaap/src/test/java/org/onap/policy/drools/pooling/message/HeartbeatTest.java @@ -33,11 +33,7 @@ public class HeartbeatTest extends BasicMessageTester<Heartbeat> { super(Heartbeat.class); } - /** - * Makes a message that will pass the validity check. - * - * @return a valid Message - */ + @Override public Heartbeat makeValidMessage() { Heartbeat msg = new Heartbeat(VALID_HOST, ++sequence); msg.setChannel(VALID_CHANNEL); diff --git a/feature-pooling-dmaap/src/test/java/org/onap/policy/drools/pooling/message/IdentificationTest.java b/feature-pooling-dmaap/src/test/java/org/onap/policy/drools/pooling/message/IdentificationTest.java index 8255034f..7b28afc0 100644 --- a/feature-pooling-dmaap/src/test/java/org/onap/policy/drools/pooling/message/IdentificationTest.java +++ b/feature-pooling-dmaap/src/test/java/org/onap/policy/drools/pooling/message/IdentificationTest.java @@ -62,11 +62,7 @@ public class IdentificationTest extends MessageWithAssignmentsTester<Identificat msg.checkValidity(); } - /** - * Makes a message that will pass the validity check. - * - * @return a valid Message - */ + @Override public Identification makeValidMessage() { Identification msg = new Identification(VALID_HOST, (isNullAssignments() ? null : VALID_ASGN)); msg.setChannel(VALID_CHANNEL); diff --git a/feature-pooling-dmaap/src/test/java/org/onap/policy/drools/pooling/message/LeaderTest.java b/feature-pooling-dmaap/src/test/java/org/onap/policy/drools/pooling/message/LeaderTest.java index 0f58e224..e30d7d09 100644 --- a/feature-pooling-dmaap/src/test/java/org/onap/policy/drools/pooling/message/LeaderTest.java +++ b/feature-pooling-dmaap/src/test/java/org/onap/policy/drools/pooling/message/LeaderTest.java @@ -62,11 +62,7 @@ public class LeaderTest extends MessageWithAssignmentsTester<Leader> { expectCheckValidityFailure(msg -> msg.setAssignments(asgnNotSmallest)); } - /** - * Makes a message that will pass the validity check. - * - * @return a valid Message - */ + @Override public Leader makeValidMessage() { Leader msg = new Leader(VALID_HOST, (isNullAssignments() ? null : VALID_ASGN)); msg.setChannel(VALID_CHANNEL); diff --git a/feature-pooling-dmaap/src/test/java/org/onap/policy/drools/pooling/message/OfflineTest.java b/feature-pooling-dmaap/src/test/java/org/onap/policy/drools/pooling/message/OfflineTest.java index 8d0f4a6f..4fe37366 100644 --- a/feature-pooling-dmaap/src/test/java/org/onap/policy/drools/pooling/message/OfflineTest.java +++ b/feature-pooling-dmaap/src/test/java/org/onap/policy/drools/pooling/message/OfflineTest.java @@ -26,11 +26,7 @@ public class OfflineTest extends BasicMessageTester<Offline> { super(Offline.class); } - /** - * Makes a message that will pass the validity check. - * - * @return a valid Message - */ + @Override public Offline makeValidMessage() { Offline msg = new Offline(VALID_HOST); msg.setChannel(VALID_CHANNEL); diff --git a/feature-pooling-dmaap/src/test/java/org/onap/policy/drools/pooling/message/QueryTest.java b/feature-pooling-dmaap/src/test/java/org/onap/policy/drools/pooling/message/QueryTest.java index 0b2a986d..e0ab016a 100644 --- a/feature-pooling-dmaap/src/test/java/org/onap/policy/drools/pooling/message/QueryTest.java +++ b/feature-pooling-dmaap/src/test/java/org/onap/policy/drools/pooling/message/QueryTest.java @@ -26,11 +26,7 @@ public class QueryTest extends BasicMessageTester<Query> { super(Query.class); } - /** - * Makes a message that will pass the validity check. - * - * @return a valid Message - */ + @Override public Query makeValidMessage() { Query msg = new Query(VALID_HOST); msg.setChannel(VALID_CHANNEL); |