diff options
6 files changed, 151 insertions, 14 deletions
diff --git a/engine-d/pom.xml b/engine-d/pom.xml index 5a00357..d1abda4 100644 --- a/engine-d/pom.xml +++ b/engine-d/pom.xml @@ -38,7 +38,7 @@ <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> - <version>2.6.2</version> + <version>2.7.0</version> </dependency> <dependency> <groupId>net.sf.json-lib</groupId> @@ -62,11 +62,6 @@ <version>3.2.2</version> </dependency> <dependency> - <groupId>commons-beanutils</groupId> - <artifactId>commons-beanutils</artifactId> - <version>1.9.3</version> - </dependency> - <dependency> <groupId>org.onap.msb.java-sdk</groupId> <artifactId>msb-java-sdk</artifactId> </dependency> @@ -150,12 +145,21 @@ <artifactId>logback</artifactId> </exclusion> <exclusion> + <groupId>ch.qos.logback</groupId> + <artifactId>logback-classic</artifactId> + </exclusion> + <exclusion> <artifactId>log4j-over-slf4j</artifactId> <groupId>org.slf4j</groupId> </exclusion> </exclusions> </dependency> <dependency> + <groupId>ch.qos.logback</groupId> + <artifactId>logback-classic</artifactId> + <version>1.2.3</version> + </dependency> + <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> </dependency> @@ -180,6 +184,10 @@ <artifactId>powermock-module-junit4</artifactId> </dependency> <dependency> + <groupId>org.powermock</groupId> + <artifactId>powermock-api-mockito</artifactId> + </dependency> + <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> </dependency> @@ -206,6 +214,17 @@ <artifactId>powermock-classloading-xstream</artifactId> <version>1.6.5</version> <scope>test</scope> + <exclusions> + <exclusion> + <groupId>com.thoughtworks.xstream</groupId> + <artifactId>xstream</artifactId> + </exclusion> + </exclusions> + </dependency> + <dependency> + <groupId>com.thoughtworks.xstream</groupId> + <artifactId>xstream</artifactId> + <version>1.4.10</version> </dependency> <dependency> <groupId>org.apache.httpcomponents</groupId> diff --git a/engine-d/src/main/java/org/onap/holmes/engine/dmaap/DMaaPAlarmPolling.java b/engine-d/src/main/java/org/onap/holmes/engine/dmaap/DMaaPAlarmPolling.java index 862895b..935d2c8 100644 --- a/engine-d/src/main/java/org/onap/holmes/engine/dmaap/DMaaPAlarmPolling.java +++ b/engine-d/src/main/java/org/onap/holmes/engine/dmaap/DMaaPAlarmPolling.java @@ -14,9 +14,6 @@ * limitations under the License. */ package org.onap.holmes.engine.dmaap; - -import static jdk.nashorn.internal.runtime.regexp.joni.Config.log; - import java.util.ArrayList; import java.util.List; import lombok.extern.slf4j.Slf4j; diff --git a/engine-d/src/main/java/org/onap/holmes/engine/dmaap/SubscriberAction.java b/engine-d/src/main/java/org/onap/holmes/engine/dmaap/SubscriberAction.java index 12edc99..c2fa5b8 100644 --- a/engine-d/src/main/java/org/onap/holmes/engine/dmaap/SubscriberAction.java +++ b/engine-d/src/main/java/org/onap/holmes/engine/dmaap/SubscriberAction.java @@ -35,19 +35,21 @@ public class SubscriberAction { private HashMap<String, DMaaPAlarmPolling> pollingTasks = new HashMap<>(); public synchronized void addSubscriber(Subscriber subscriber) { - if (!pollingTasks.containsKey(subscriber.getTopic())) { + String topic = subscriber.getTopic(); + if (topic != null && !pollingTasks.containsKey(topic)) { DMaaPAlarmPolling pollingTask = new DMaaPAlarmPolling(subscriber, droolsEngine); Thread thread = new Thread(pollingTask); thread.start(); - pollingTasks.put(subscriber.getTopic(), pollingTask); + pollingTasks.put(topic, pollingTask); log.info("Subscribe to topic: " + subscriber.getUrl()); } } public synchronized void removeSubscriber(Subscriber subscriber) { - if (pollingTasks.containsKey(subscriber.getTopic())) { - pollingTasks.get(subscriber.getTopic()).stopTask(); - pollingTasks.remove(subscriber.getTopic()); + String topic = subscriber.getTopic(); + if (topic != null && pollingTasks.containsKey(topic)) { + pollingTasks.get(topic).stopTask(); + pollingTasks.remove(topic); } log.info("Topic unsubscribed: " + subscriber.getUrl()); } diff --git a/engine-d/src/test/java/org/onap/holmes/engine/dmaap/DMaaPAlarmPollingTest.java b/engine-d/src/test/java/org/onap/holmes/engine/dmaap/DMaaPAlarmPollingTest.java new file mode 100644 index 0000000..f4804f3 --- /dev/null +++ b/engine-d/src/test/java/org/onap/holmes/engine/dmaap/DMaaPAlarmPollingTest.java @@ -0,0 +1,55 @@ +/** + * Copyright 2017 ZTE Corporation. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.onap.holmes.engine.dmaap; + +import static org.hamcrest.core.IsEqual.equalTo; +import static org.junit.Assert.*; + +import java.lang.reflect.Field; +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.onap.holmes.dsa.dmaappolling.Subscriber; +import org.onap.holmes.engine.manager.DroolsEngine; +import org.powermock.api.easymock.PowerMock; +import org.powermock.core.classloader.annotations.PrepareForTest; +import org.powermock.modules.junit4.PowerMockRunner; + +@PrepareForTest({Subscriber.class, DroolsEngine.class}) +@RunWith(PowerMockRunner.class) +public class DMaaPAlarmPollingTest { + + private DMaaPAlarmPolling dMaaPAlarmPolling; + private Subscriber subscriber; + private DroolsEngine droolsEngine; + + @Before + public void setUp() { + subscriber = PowerMock.createMock(Subscriber.class); + droolsEngine = PowerMock.createMock(DroolsEngine.class); + dMaaPAlarmPolling = new DMaaPAlarmPolling(subscriber, droolsEngine); + PowerMock.replayAll(); + } + + @Test + public void test_stop_task_ok() throws Exception { + dMaaPAlarmPolling.stopTask(); + Field field = DMaaPAlarmPolling.class.getDeclaredField("isAlive"); + field.setAccessible(true); + assertThat(field.get(dMaaPAlarmPolling), equalTo(false)); + } + +}
\ No newline at end of file diff --git a/engine-d/src/test/java/org/onap/holmes/engine/dmaap/SubscriberActionTest.java b/engine-d/src/test/java/org/onap/holmes/engine/dmaap/SubscriberActionTest.java new file mode 100644 index 0000000..7f5d56e --- /dev/null +++ b/engine-d/src/test/java/org/onap/holmes/engine/dmaap/SubscriberActionTest.java @@ -0,0 +1,57 @@ +/* + * Copyright 2017 ZTE Corporation. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.onap.holmes.engine.dmaap; + +import java.util.HashMap; +import org.junit.Before; +import org.junit.Test; +import org.onap.holmes.dsa.dmaappolling.Subscriber; +import org.powermock.api.easymock.PowerMock; +import org.powermock.reflect.Whitebox; + +public class SubscriberActionTest { + + private SubscriberAction subscriberAction; + + @Before + public void setUp() { + subscriberAction = new SubscriberAction(); + HashMap<String, DMaaPAlarmPolling> dMaaPAlarmPollingHashMap = new HashMap<>(); + DMaaPAlarmPolling dMaaPAlarmPolling = new DMaaPAlarmPolling(null, null); + dMaaPAlarmPollingHashMap.put("test", dMaaPAlarmPolling); + DMaaPAlarmPolling dMaaPAlarmPolling1 = new DMaaPAlarmPolling(null, null); + dMaaPAlarmPollingHashMap.put("testTopic", dMaaPAlarmPolling1); + Whitebox.setInternalState(subscriberAction, "pollingTasks", dMaaPAlarmPollingHashMap); + PowerMock.replayAll(); + } + + @Test + public void removeSubscriber() throws Exception { + Subscriber subscriber = PowerMock.createMock(Subscriber.class); + PowerMock.expectPrivate(subscriber, "getTopic").andReturn("testTopic"); + PowerMock.expectPrivate(subscriber, "getUrl").andReturn("https"); + PowerMock.replayAll(); + subscriberAction.removeSubscriber(subscriber); + PowerMock.verifyAll(); + } + + @Test + public void stopPollingTasks() throws Exception { + subscriberAction.stopPollingTasks(); + PowerMock.verifyAll(); + } + +}
\ No newline at end of file @@ -182,6 +182,13 @@ </dependency> <dependency> + <groupId>org.powermock</groupId> + <artifactId>powermock-api-mockito</artifactId> + <version>1.7.1</version> + <scope>test</scope> + </dependency> + + <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpclient</artifactId> <version>4.5.3</version> |