diff options
Diffstat (limited to 'engine-d')
5 files changed, 30 insertions, 667 deletions
diff --git a/engine-d/pom.xml b/engine-d/pom.xml index 9c62644..b86b4ab 100644 --- a/engine-d/pom.xml +++ b/engine-d/pom.xml @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="UTF-8" ?> <!-- - ~ Copyright 2017 ZTE Corporation. + ~ Copyright 2017-2020 ZTE Corporation. ~ ~ Licensed under the Apache License, Version 2.0 (the "License"); ~ you may not use this file except in compliance with the License. @@ -29,347 +29,7 @@ <name>holmes-engine-d-service</name> <packaging>jar</packaging> - <properties> - <drools.version>6.5.0.Final</drools.version> - <jetty.version>9.4.18.v20190429</jetty.version> - </properties> - - <dependencies> - <dependency> - <groupId>org.hibernate</groupId> - <artifactId>hibernate-validator</artifactId> - <version>5.4.2.Final</version> - </dependency> - <dependency> - <groupId>ch.qos.logback</groupId> - <artifactId>logback-classic</artifactId> - <version>1.2.3</version> - </dependency> - <dependency> - <groupId>net.sf.json-lib</groupId> - <artifactId>json-lib</artifactId> - <version>2.4</version> - <classifier>jdk15</classifier> - <exclusions> - <exclusion> - <groupId>commons-collections</groupId> - <artifactId>commons-collections</artifactId> - </exclusion> - <exclusion> - <groupId>commons-beanutils</groupId> - <artifactId>commons-beanutils</artifactId> - </exclusion> - </exclusions> - </dependency> - <dependency> - <groupId>commons-collections</groupId> - <artifactId>commons-collections</artifactId> - <version>3.2.2</version> - </dependency> - <dependency> - <groupId>org.onap.msb.java-sdk</groupId> - <artifactId>msb-java-sdk</artifactId> - <exclusions> - <exclusion> - <groupId>ch.qos.logback</groupId> - <artifactId>logback-classic</artifactId> - </exclusion> - <exclusion> - <groupId>com.fasterxml.jackson.core</groupId> - <artifactId>jackson-databind</artifactId> - </exclusion> - <exclusion> - <groupId>com.fasterxml.jackson.core</groupId> - <artifactId>jackson-core</artifactId> - </exclusion> - <exclusion> - <groupId>org.slf4j</groupId> - <artifactId>slf4j-api</artifactId> - </exclusion> - <exclusion> - <groupId>org.eclipse.jetty</groupId> - <artifactId>jetty-server</artifactId> - </exclusion> - <exclusion> - <groupId>com.squareup.okhttp3</groupId> - <artifactId>okhttp</artifactId> - </exclusion> - </exclusions> - </dependency> - <dependency> - <groupId>org.reflections</groupId> - <artifactId>reflections</artifactId> - </dependency> - <dependency> - <groupId>org.onap.holmes.common</groupId> - <artifactId>holmes-actions</artifactId> - <exclusions> - <exclusion> - <groupId>io.dropwizard</groupId> - <artifactId>dropwizard-db</artifactId> - </exclusion> - <exclusion> - <groupId>io.dropwizard</groupId> - <artifactId>dropwizard-core</artifactId> - </exclusion> - <exclusion> - <groupId>org.glassfish.jersey.containers</groupId> - <artifactId>jersey-container-servlet-core</artifactId> - </exclusion> - <exclusion> - <groupId>io.swagger</groupId> - <artifactId>swagger-jersey2-jaxrs</artifactId> - </exclusion> - <exclusion> - <groupId>org.slf4j</groupId> - <artifactId>slf4j-api</artifactId> - </exclusion> - </exclusions> - </dependency> - <dependency> - <groupId>org.glassfish.jersey.containers</groupId> - <artifactId>jersey-container-servlet-core</artifactId> - <version>2.22.2</version> - </dependency> - <dependency> - <groupId>org.easymock</groupId> - <artifactId>easymock</artifactId> - </dependency> - <dependency> - <groupId>org.drools</groupId> - <artifactId>drools-core</artifactId> - <version>${drools.version}</version> - <exclusions> - <exclusion> - <groupId>org.slf4j</groupId> - <artifactId>slf4j-api</artifactId> - </exclusion> - </exclusions> - </dependency> - <dependency> - <groupId>org.drools</groupId> - <artifactId>drools-compiler</artifactId> - <version>${drools.version}</version> - <exclusions> - <exclusion> - <groupId>org.eclipse.jdt.core.compiler</groupId> - <artifactId>ecj</artifactId> - </exclusion> - <exclusion> - <groupId>org.slf4j</groupId> - <artifactId>slf4j-api</artifactId> - </exclusion> - </exclusions> - </dependency> - <dependency> - <groupId>org.eclipse.jdt.core.compiler</groupId> - <artifactId>ecj</artifactId> - <version>4.5.1</version> - </dependency> - <dependency> - <groupId>org.drools</groupId> - <artifactId>drools-templates</artifactId> - <version>${drools.version}</version> - </dependency> - <dependency> - <groupId>io.dropwizard</groupId> - <artifactId>dropwizard-db</artifactId> - </dependency> - <dependency> - <groupId>org.antlr</groupId> - <artifactId>stringtemplate</artifactId> - </dependency> - <dependency> - <groupId>io.dropwizard</groupId> - <artifactId>dropwizard-core</artifactId> - <exclusions> - <exclusion> - <groupId>ch.qos.logback</groupId> - <artifactId>logback</artifactId> - </exclusion> - <exclusion> - <groupId>org.hibernate</groupId> - <artifactId>hibernate-validator</artifactId> - </exclusion> - <exclusion> - <groupId>org.slf4j</groupId> - <artifactId>slf4j-api</artifactId> - </exclusion> - <exclusion> - <groupId>org.eclipse.jetty</groupId> - <artifactId>jetty-http</artifactId> - </exclusion> - <exclusion> - <groupId>org.eclipse.jetty</groupId> - <artifactId>jetty-util</artifactId> - </exclusion> - <exclusion> - <groupId>org.eclipse.jetty</groupId> - <artifactId>jetty-server</artifactId> - </exclusion> - <exclusion> - <groupId>org.eclipse.jetty</groupId> - <artifactId>jetty-servlet</artifactId> - </exclusion> - </exclusions> - </dependency> - <dependency> - <groupId>org.eclipse.jetty</groupId> - <artifactId>jetty-server</artifactId> - <version>${jetty.version}</version> - </dependency> - <dependency> - <groupId>org.eclipse.jetty</groupId> - <artifactId>jetty-http</artifactId> - <version>${jetty.version}</version> - </dependency> - <dependency> - <groupId>org.eclipse.jetty</groupId> - <artifactId>jetty-util</artifactId> - <version>${jetty.version}</version> - </dependency> - <dependency> - <groupId>org.eclipse.jetty</groupId> - <artifactId>jetty-servlet</artifactId> - <version>${jetty.version}</version> - </dependency> - <dependency> - <groupId>com.squareup.okhttp3</groupId> - <artifactId>okhttp</artifactId> - <version>3.14.1</version> - </dependency> - <dependency> - <groupId>io.dropwizard</groupId> - <artifactId>dropwizard-jdbi</artifactId> - </dependency> - <dependency> - <groupId>org.projectlombok</groupId> - <artifactId>lombok</artifactId> - </dependency> - <dependency> - <groupId>org.postgresql</groupId> - <artifactId>postgresql</artifactId> - </dependency> - <dependency> - <groupId>junit</groupId> - <artifactId>junit</artifactId> - </dependency> - <dependency> - <groupId>org.hamcrest</groupId> - <artifactId>hamcrest-core</artifactId> - </dependency> - <dependency> - <groupId>org.powermock</groupId> - <artifactId>powermock-module-junit4</artifactId> - </dependency> - <dependency> - <groupId>org.powermock</groupId> - <artifactId>powermock-api-mockito</artifactId> - </dependency> - <dependency> - <groupId>io.swagger</groupId> - <artifactId>swagger-jersey2-jaxrs</artifactId> - <scope>provided</scope> - <exclusions> - <exclusion> - <groupId>com.fasterxml.jackson.core</groupId> - <artifactId>jackson-core</artifactId> - </exclusion> - <exclusion> - <groupId>com.fasterxml.jackson.core</groupId> - <artifactId>jackson-databind</artifactId> - </exclusion> - </exclusions> - </dependency> - <dependency> - <groupId>org.powermock</groupId> - <artifactId>powermock-api-easymock</artifactId> - <version>1.6.5</version> - <scope>test</scope> - </dependency> - <dependency> - <groupId>org.powermock</groupId> - <artifactId>powermock-module-junit4-rule</artifactId> - <version>1.6.5</version> - <scope>test</scope> - </dependency> - <dependency> - <groupId>org.powermock</groupId> - <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> - <artifactId>httpclient</artifactId> - </dependency> - <dependency> - <groupId>org.slf4j</groupId> - <artifactId>slf4j-api</artifactId> - </dependency> - </dependencies> - <build> - <plugins> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-jar-plugin</artifactId> - <configuration> - <archive> - <manifest> - <addDefaultImplementationEntries>true</addDefaultImplementationEntries> - </manifest> - </archive> - </configuration> - </plugin> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-shade-plugin</artifactId> - <configuration> - <createDependencyReducedPom>true</createDependencyReducedPom> - <filters> - <filter> - <artifact>*:*</artifact> - <excludes> - <exclude>META-INF/*.SF</exclude> - <exclude>META-INF/*.DSA</exclude> - <exclude>META-INF/*.RSA</exclude> - </excludes> - </filter> - </filters> - </configuration> - <executions> - <execution> - <phase>package</phase> - <goals> - <goal>shade</goal> - </goals> - <configuration> - <transformers> - <transformer - implementation="org.apache.maven.plugins.shade.resource.ServicesResourceTransformer"/> - <transformer - implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer"> - <mainClass>org.onap.holmes.engine.EngineDActiveApp - </mainClass> - </transformer> - </transformers> - </configuration> - </execution> - </executions> - </plugin> - </plugins> <resources> <resource> <directory>src/main/java</directory> diff --git a/engine-d/src/main/java/org/onap/holmes/engine/mqconsumer/MQConsumer.java b/engine-d/src/main/java/org/onap/holmes/engine/mqconsumer/MQConsumer.java deleted file mode 100644 index e77146f..0000000 --- a/engine-d/src/main/java/org/onap/holmes/engine/mqconsumer/MQConsumer.java +++ /dev/null @@ -1,114 +0,0 @@ -/** - * 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.mqconsumer; - -import java.io.Serializable; -import javax.inject.Inject; -import javax.jms.Connection; -import javax.jms.ConnectionFactory; -import javax.jms.Destination; -import javax.jms.JMSException; -import javax.jms.Message; -import javax.jms.MessageConsumer; -import javax.jms.MessageListener; -import javax.jms.Session; -import lombok.NoArgsConstructor; -import lombok.extern.slf4j.Slf4j; -import org.apache.activemq.ActiveMQConnectionFactory; -import org.apache.activemq.command.ActiveMQObjectMessage; -import org.glassfish.hk2.api.IterableProvider; -import org.jvnet.hk2.annotations.Service; -import org.onap.holmes.common.api.stat.VesAlarm; -import org.onap.holmes.common.config.MQConfig; -import org.onap.holmes.common.constant.AlarmConst; -import org.onap.holmes.engine.manager.DroolsEngine; - -@Service -@Slf4j -@NoArgsConstructor -public class MQConsumer { - - @Inject - private IterableProvider<MQConfig> mqConfigProvider; - private ConnectionFactory connectionFactory; - private ConnectionFactory connectionFactory1; - @Inject - private DroolsEngine engine; - - public void registerAlarmTopicListener() { - String brokerURL = - "tcp://" + mqConfigProvider.get().getBrokerIp() + ":" + mqConfigProvider.get().getBrokerPort(); - connectionFactory = new ActiveMQConnectionFactory(mqConfigProvider.get().getBrokerUsername(), - mqConfigProvider.get().getBrokerPassword(), brokerURL); - - AlarmMqMessageListener listener = new AlarmMqMessageListener(); - listener.receive(); - } - class AlarmMqMessageListener implements MessageListener { - - private Connection connection = null; - private Session session = null; - private Destination destination = null; - private MessageConsumer consumer = null; - - private void initialize() throws JMSException { - connection = connectionFactory.createConnection(); - session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE); - destination = session.createTopic(AlarmConst.MQ_TOPIC_NAME_ALARM); - consumer = session.createConsumer(destination); - connection.start(); - } - - public void receive() { - try { - initialize(); - consumer.setMessageListener(this); - } catch (JMSException e) { - log.error("Failed to connect to the MQ service : " + e.getMessage(), e); - try { - close(); - } catch (JMSException e1) { - log.error("Failed close connection " + e1.getMessage(), e1); - } - } - } - - public void onMessage(Message arg0) { - ActiveMQObjectMessage objectMessage = (ActiveMQObjectMessage) arg0; - try { - Serializable object = objectMessage.getObject(); - if (object instanceof VesAlarm) { - VesAlarm vesAlarm = (VesAlarm) object; - engine.putRaisedIntoStream(vesAlarm); - } - } catch (JMSException e) { - log.error("Failed get object : " + e.getMessage(), e); - } - } - - private void close() throws JMSException { - if (consumer != null) { - consumer.close(); - } - if (session != null) { - session.close(); - } - if (connection != null) { - connection.close(); - } - } - } -} diff --git a/engine-d/src/test/java/org/onap/holmes/dsa/dmaappolling/SubscriberTest.java b/engine-d/src/test/java/org/onap/holmes/dsa/dmaappolling/SubscriberTest.java index 4b64e6a..3301b89 100644 --- a/engine-d/src/test/java/org/onap/holmes/dsa/dmaappolling/SubscriberTest.java +++ b/engine-d/src/test/java/org/onap/holmes/dsa/dmaappolling/SubscriberTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2017 ZTE Corporation. + * Copyright 2017-2020 ZTE Corporation. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -18,20 +18,18 @@ package org.onap.holmes.dsa.dmaappolling; import org.apache.http.HttpResponse; import org.apache.http.client.methods.HttpGet; import org.apache.http.impl.client.CloseableHttpClient; +import org.easymock.EasyMock; import org.glassfish.hk2.api.ServiceLocator; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; -import org.mockito.Matchers; import org.onap.holmes.common.api.stat.AlarmAdditionalField; import org.onap.holmes.common.api.stat.VesAlarm; import org.onap.holmes.common.dropwizard.ioc.utils.ServiceLocatorHolder; import org.onap.holmes.common.utils.GsonUtil; import org.onap.holmes.common.utils.HttpsUtils; -import org.onap.holmes.dsa.dmaappolling.DMaaPResponseUtil; -import org.onap.holmes.dsa.dmaappolling.Subscriber; import org.powermock.api.easymock.PowerMock; -import org.powermock.api.mockito.PowerMockito; +import org.powermock.core.classloader.annotations.PowerMockIgnore; import org.powermock.core.classloader.annotations.PrepareForTest; import org.powermock.modules.junit4.PowerMockRunner; @@ -42,23 +40,23 @@ import java.util.List; import static org.hamcrest.CoreMatchers.*; import static org.junit.Assert.assertThat; -@PrepareForTest({ServiceLocatorHolder.class, ServiceLocator.class, HttpsUtils.class}) @RunWith(PowerMockRunner.class) +@PrepareForTest({ServiceLocatorHolder.class, ServiceLocator.class, HttpsUtils.class, Subscriber.class}) +@PowerMockIgnore("javax.net.ssl.*") public class SubscriberTest { private DMaaPResponseUtil util = new DMaaPResponseUtil(); @Before public void init() { - PowerMockito.mockStatic(ServiceLocatorHolder.class); - ServiceLocator serviceLocator = PowerMockito.mock(ServiceLocator.class); - PowerMockito.when(ServiceLocatorHolder.getLocator()).thenReturn(serviceLocator); - PowerMockito.when(serviceLocator.getService(DMaaPResponseUtil.class)).thenReturn(util); + PowerMock.mockStatic(ServiceLocatorHolder.class); + ServiceLocator serviceLocator = PowerMock.createMock(ServiceLocator.class); + EasyMock.expect(ServiceLocatorHolder.getLocator()).andReturn(serviceLocator).anyTimes(); + EasyMock.expect(serviceLocator.getService(DMaaPResponseUtil.class)).andReturn(util).anyTimes(); } @Test public void subscribe() throws Exception { - PowerMock.resetAll(); VesAlarm vesAlarm = new VesAlarm(); vesAlarm.setDomain("ONAP"); vesAlarm.setEventId("123"); @@ -118,23 +116,29 @@ public class SubscriberTest { "\"specificProblem\": \"specificProblem\"," + "\"vfStatus\": \"vfStatus\"" + "}}}"; - Subscriber subscriber = new Subscriber(); - subscriber.setUrl("https://www.onap.org"); - subscriber.setConsumerGroup("group"); - subscriber.setConsumer("consumer"); + List<String> responseList = new ArrayList<>(); responseList.add(eventString); String responseJson = GsonUtil.beanToJson(responseList); - PowerMockito.mockStatic(HttpsUtils.class); - HttpResponse httpResponse = PowerMockito.mock(HttpResponse.class); - PowerMockito.when(HttpsUtils.get(Matchers.any(HttpGet.class), - Matchers.any(HashMap.class), Matchers.any(CloseableHttpClient.class))).thenReturn(httpResponse); - PowerMockito.when(HttpsUtils.extractResponseEntity(httpResponse)).thenReturn(responseJson); + PowerMock.mockStatic(HttpsUtils.class); + CloseableHttpClient mockedCloseableHttpClient = PowerMock.createMock(CloseableHttpClient.class); + HttpResponse httpResponse = PowerMock.createMock(HttpResponse.class); + EasyMock.expect(HttpsUtils.getConditionalHttpsClient(15000)).andReturn(mockedCloseableHttpClient); + EasyMock.expect(HttpsUtils.get(EasyMock.anyObject(HttpGet.class), + EasyMock.anyObject(HashMap.class), EasyMock.anyObject(CloseableHttpClient.class))).andReturn(httpResponse); + EasyMock.expect(HttpsUtils.extractResponseEntity(httpResponse)).andReturn(responseJson); + mockedCloseableHttpClient.close(); + EasyMock.expectLastCall(); PowerMock.replayAll(); + Subscriber subscriber = new Subscriber(); + subscriber.setUrl("https://www.onap.org"); + subscriber.setConsumerGroup("group"); + subscriber.setConsumer("consumer"); List<VesAlarm> vesAlarms = subscriber.subscribe(); + PowerMock.verifyAll(); assertThat(vesAlarm.getEventName(), equalTo(vesAlarms.get(0).getEventName())); 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 index 247962f..1de85b2 100644 --- 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 @@ -15,13 +15,15 @@ */ 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; +import java.util.HashMap; + + public class SubscriberActionTest { private SubscriberAction subscriberAction; @@ -30,9 +32,9 @@ public class SubscriberActionTest { public void setUp() { subscriberAction = new SubscriberAction(); HashMap<String, DMaaPAlarmPolling> dMaaPAlarmPollingHashMap = new HashMap<>(); - DMaaPAlarmPolling dMaaPAlarmPolling = new DMaaPAlarmPolling(null, null,null); + DMaaPAlarmPolling dMaaPAlarmPolling = new DMaaPAlarmPolling(null, null, null); dMaaPAlarmPollingHashMap.put("test", dMaaPAlarmPolling); - DMaaPAlarmPolling dMaaPAlarmPolling1 = new DMaaPAlarmPolling(null, null,null); + DMaaPAlarmPolling dMaaPAlarmPolling1 = new DMaaPAlarmPolling(null, null, null); dMaaPAlarmPollingHashMap.put("testTopic", dMaaPAlarmPolling1); Whitebox.setInternalState(subscriberAction, "pollingTasks", dMaaPAlarmPollingHashMap); PowerMock.replayAll(); diff --git a/engine-d/src/test/java/org/onap/holmes/engine/mqconsumer/MQConsumerTest.java b/engine-d/src/test/java/org/onap/holmes/engine/mqconsumer/MQConsumerTest.java deleted file mode 100644 index 5135007..0000000 --- a/engine-d/src/test/java/org/onap/holmes/engine/mqconsumer/MQConsumerTest.java +++ /dev/null @@ -1,189 +0,0 @@ -/** - * 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.mqconsumer; - -import static org.easymock.EasyMock.anyBoolean; -import static org.easymock.EasyMock.anyInt; -import static org.easymock.EasyMock.anyObject; -import static org.easymock.EasyMock.expect; - - -import javax.jms.Connection; -import javax.jms.ConnectionFactory; -import javax.jms.Destination; -import javax.jms.JMSException; -import javax.jms.MessageConsumer; -import javax.jms.Session; -import javax.jms.Topic; -import org.apache.activemq.command.ActiveMQObjectMessage; -import org.easymock.EasyMock; -import org.glassfish.hk2.api.IterableProvider; -import org.junit.Before; -import org.junit.Test; -import org.onap.holmes.common.api.stat.Alarm; -import org.onap.holmes.common.config.MQConfig; -import org.powermock.api.easymock.PowerMock; -import org.powermock.reflect.Whitebox; - -public class MQConsumerTest { - - private IterableProvider<MQConfig> mqConfigProvider; - - private ConnectionFactory connectionFactory; - - private MQConsumer mqConsumer; - - private MQConsumer mqConsumer1; - - private MQConsumer mqConsumer2; - - @Before - public void setUp() { - - mqConsumer = new MQConsumer(); - - mqConfigProvider = PowerMock.createMock(IterableProvider.class); - connectionFactory = PowerMock.createMock(ConnectionFactory.class); - - Whitebox.setInternalState(mqConsumer, "mqConfigProvider", mqConfigProvider); - Whitebox.setInternalState(mqConsumer, "connectionFactory", connectionFactory); - } - - @Test - public void init() throws Exception { - MQConfig mqConfig = new MQConfig(); - mqConfig.setBrokerIp("127.0.0.1"); - mqConfig.setBrokerPort(61616); - mqConfig.setBrokerPassword("admin"); - mqConfig.setBrokerUsername("admin"); - - expect(mqConfigProvider.get()).andReturn(mqConfig).anyTimes(); - PowerMock.replayAll(); - - PowerMock.verifyAll(); - } - - @Test - public void listener_receive() throws JMSException { - MQConsumer.AlarmMqMessageListener listener = mqConsumer.new AlarmMqMessageListener(); - - Connection connection = PowerMock.createMock(Connection.class); - Session session = PowerMock.createMock(Session.class); - Destination destination = PowerMock.createMock(Topic.class); - MessageConsumer consumer = PowerMock.createMock(MessageConsumer.class); - - Whitebox.setInternalState(listener, "connection", connection); - Whitebox.setInternalState(listener, "session", session); - Whitebox.setInternalState(listener, "destination", destination); - Whitebox.setInternalState(listener, "consumer", consumer); - - PowerMock.reset(); - - expect(connectionFactory.createConnection()).andReturn(connection); - connection.start(); - expect(connection.createSession(anyBoolean(), anyInt())).andReturn(session); - expect(session.createTopic(anyObject(String.class))).andReturn((Topic) destination); - expect(session.createConsumer(anyObject(Destination.class))).andReturn(consumer); - consumer.setMessageListener(listener); - - PowerMock.replayAll(); - - listener.receive(); - - PowerMock.verifyAll(); - } - - @Test - public void listener_exception() throws JMSException { - MQConsumer.AlarmMqMessageListener listener = mqConsumer.new AlarmMqMessageListener(); - - Connection connection = PowerMock.createMock(Connection.class); - Session session = PowerMock.createMock(Session.class); - Destination destination = PowerMock.createMock(Topic.class); - MessageConsumer consumer = PowerMock.createMock(MessageConsumer.class); - - Whitebox.setInternalState(listener, "connection", connection); - Whitebox.setInternalState(listener, "session", session); - Whitebox.setInternalState(listener, "destination", destination); - Whitebox.setInternalState(listener, "consumer", consumer); - - PowerMock.reset(); - - expect(connectionFactory.createConnection()).andReturn(connection); - connection.start(); - expect(connection.createSession(anyBoolean(), anyInt())).andReturn(session); - expect(session.createTopic(anyObject(String.class))).andReturn((Topic) destination); - expect(session.createConsumer(anyObject(Destination.class))).andReturn(consumer); - consumer.setMessageListener(listener); - EasyMock.expectLastCall().andThrow(new JMSException("")); - - consumer.close(); - session.close(); - connection.close(); - - PowerMock.replayAll(); - - listener.receive(); - - PowerMock.verifyAll(); - } - - @Test - public void listener_close_exception() throws JMSException { - MQConsumer.AlarmMqMessageListener listener = mqConsumer.new AlarmMqMessageListener(); - - Connection connection = PowerMock.createMock(Connection.class); - Session session = PowerMock.createMock(Session.class); - Destination destination = PowerMock.createMock(Topic.class); - MessageConsumer consumer = PowerMock.createMock(MessageConsumer.class); - - Whitebox.setInternalState(listener, "connection", connection); - Whitebox.setInternalState(listener, "session", session); - Whitebox.setInternalState(listener, "destination", destination); - Whitebox.setInternalState(listener, "consumer", consumer); - - PowerMock.reset(); - - expect(connectionFactory.createConnection()).andReturn(connection); - connection.start(); - expect(connection.createSession(anyBoolean(), anyInt())).andReturn(session); - expect(session.createTopic(anyObject(String.class))).andReturn((Topic) destination); - expect(session.createConsumer(anyObject(Destination.class))).andReturn(consumer); - consumer.setMessageListener(listener); - EasyMock.expectLastCall().andThrow(new JMSException("")); - - consumer.close(); - EasyMock.expectLastCall().andThrow(new JMSException("")); - - PowerMock.replayAll(); - - listener.receive(); - - PowerMock.verifyAll(); - } - - @Test - public void listener_on_message() throws JMSException { - MQConsumer.AlarmMqMessageListener listener = mqConsumer.new AlarmMqMessageListener(); - Alarm alarm = new Alarm(); - alarm.setAlarmKey("alarmKey"); - ActiveMQObjectMessage objectMessage = new ActiveMQObjectMessage(); - objectMessage.setObject(alarm); - - listener.onMessage(objectMessage); - } -} |