summaryrefslogtreecommitdiffstats
path: root/engine-d
diff options
context:
space:
mode:
Diffstat (limited to 'engine-d')
-rw-r--r--engine-d/pom.xml342
-rw-r--r--engine-d/src/main/java/org/onap/holmes/engine/mqconsumer/MQConsumer.java114
-rw-r--r--engine-d/src/test/java/org/onap/holmes/dsa/dmaappolling/SubscriberTest.java44
-rw-r--r--engine-d/src/test/java/org/onap/holmes/engine/dmaap/SubscriberActionTest.java8
-rw-r--r--engine-d/src/test/java/org/onap/holmes/engine/mqconsumer/MQConsumerTest.java189
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);
- }
-}