2 * ============LICENSE_START=======================================================
3 * Copyright (C) 2019 Samsung. All rights reserved.
4 * Modifications Copyright (C) 2019-2020 Nordix Foundation.
5 * ================================================================================
6 * Licensed under the Apache License, Version 2.0 (the "License");
7 * you may not use this file except in compliance with the License.
8 * You may obtain a copy of the License at
10 * http://www.apache.org/licenses/LICENSE-2.0
12 * Unless required by applicable law or agreed to in writing, software
13 * distributed under the License is distributed on an "AS IS" BASIS,
14 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 * See the License for the specific language governing permissions and
16 * limitations under the License.
18 * SPDX-License-Identifier: Apache-2.0
19 * ============LICENSE_END=========================================================
22 package org.onap.policy.apex.plugins.event.carrier.jms;
24 import static org.assertj.core.api.Assertions.assertThatCode;
25 import static org.assertj.core.api.Assertions.assertThatThrownBy;
26 import static org.junit.Assert.assertNotNull;
27 import static org.junit.Assert.assertNull;
29 import javax.jms.Session;
30 import org.junit.Before;
31 import org.junit.Test;
32 import org.onap.policy.apex.service.engine.event.ApexEvent;
33 import org.onap.policy.apex.service.engine.event.ApexEventException;
34 import org.onap.policy.apex.service.engine.event.ApexEventProducer;
35 import org.onap.policy.apex.service.engine.event.ApexEventReceiver;
36 import org.onap.policy.apex.service.engine.event.ApexEventRuntimeException;
37 import org.onap.policy.apex.service.engine.event.PeeredReference;
38 import org.onap.policy.apex.service.engine.event.SynchronousEventCache;
39 import org.onap.policy.apex.service.parameters.carriertechnology.CarrierTechnologyParameters;
40 import org.onap.policy.apex.service.parameters.eventhandler.EventHandlerParameters;
41 import org.onap.policy.apex.service.parameters.eventhandler.EventHandlerPeeredMode;
43 public class ApexJmsProducerTest {
45 ApexJmsConsumer apexJmsConsumer = null;
46 EventHandlerParameters producerParameters = null;
47 ApexEventReceiver incomingEventReceiver = null;
48 ApexEventProducer apexJmsProducer = null;
49 Session jmsSession = null;
50 JmsCarrierTechnologyParameters jmsCarrierTechnologyParameters = null;
51 SynchronousEventCache synchronousEventCache = null;
52 private static final long DEFAULT_SYNCHRONOUS_EVENT_TIMEOUT = 1000;
57 * @throws Exception on test set up errors.
60 public void setUp() throws Exception {
61 apexJmsConsumer = new ApexJmsConsumer();
62 producerParameters = new EventHandlerParameters();
63 apexJmsProducer = new ApexJmsProducer();
67 public void testInitWithNonJmsCarrierTechnologyParameters() {
68 producerParameters.setCarrierTechnologyParameters(new CarrierTechnologyParameters() {});
69 assertThatThrownBy(() -> apexJmsProducer.init("TestApexJmsProducer", producerParameters))
70 .isInstanceOf(ApexEventException.class);
74 public void testInitWithJmsCarrierTechnologyParameters() throws ApexEventException {
75 jmsCarrierTechnologyParameters = new JmsCarrierTechnologyParameters();
76 producerParameters.setCarrierTechnologyParameters(jmsCarrierTechnologyParameters);
77 assertThatThrownBy(() -> apexJmsProducer.init("TestApexJmsProducer", producerParameters))
78 .isInstanceOf(ApexEventException.class);
82 public void testGetName() {
83 assertNull(apexJmsProducer.getName());
87 public void testGetPeeredReference() {
88 assertNull(apexJmsProducer.getPeeredReference(EventHandlerPeeredMode.REQUESTOR));
92 public void testSetPeeredReference() {
93 PeeredReference peeredReference = new PeeredReference(EventHandlerPeeredMode.REQUESTOR,
94 apexJmsConsumer, apexJmsProducer);
95 apexJmsProducer.setPeeredReference(EventHandlerPeeredMode.REQUESTOR, peeredReference);
96 assertNotNull(apexJmsProducer.getPeeredReference(EventHandlerPeeredMode.REQUESTOR));
100 public void testSendEvent() throws ApexEventException {
101 producerParameters.setCarrierTechnologyParameters(new JmsCarrierTechnologyParameters() {});
102 synchronousEventCache = new SynchronousEventCache(EventHandlerPeeredMode.SYNCHRONOUS,
103 apexJmsConsumer, apexJmsProducer, DEFAULT_SYNCHRONOUS_EVENT_TIMEOUT);
104 apexJmsProducer.setPeeredReference(EventHandlerPeeredMode.SYNCHRONOUS,
105 synchronousEventCache);
106 ApexEvent apexEvent = new ApexEvent("testEvent", "testVersion", "testNameSpace",
107 "testSource", "testTarget");
108 assertThatThrownBy(() -> apexJmsProducer.sendEvent(1000L, null, "TestApexJmsProducer", apexEvent))
109 .isInstanceOf(NullPointerException.class);
113 public void testSendEventWithNonSerializableObject() throws ApexEventException {
114 producerParameters.setCarrierTechnologyParameters(new JmsCarrierTechnologyParameters() {});
115 synchronousEventCache = new SynchronousEventCache(EventHandlerPeeredMode.SYNCHRONOUS,
116 apexJmsConsumer, apexJmsProducer, DEFAULT_SYNCHRONOUS_EVENT_TIMEOUT);
117 apexJmsProducer.setPeeredReference(EventHandlerPeeredMode.SYNCHRONOUS,
118 synchronousEventCache);
119 assertThatThrownBy(() -> apexJmsProducer.sendEvent(-1L, null, "TestApexJmsProducer", new ApexJmsProducerTest()))
120 .isInstanceOf(ApexEventRuntimeException.class);
124 public void testStop() {
125 assertThatCode(apexJmsProducer::stop).doesNotThrowAnyException();