summaryrefslogtreecommitdiffstats
path: root/src/test/java
diff options
context:
space:
mode:
authoremartin <ephraim.martin@est.tech>2019-03-22 16:45:31 +0000
committeremartin <ephraim.martin@est.tech>2019-03-22 16:45:31 +0000
commitab26367e1e54674d6eb597b005b15304b6502e88 (patch)
treebe1f825d994ff0f8422f3ca6966d4bd15b5ce225 /src/test/java
parent91cd8af37a7d5c285ac02ddcbd022bb14312106c (diff)
Publish VES event to MessageRouter via http
Change-Id: Ic5ed1fad1182e7343f213488c4015d2683ab8ddc Issue-ID: DCAEGEN2-1273 Signed-off-by: emartin <ephraim.martin@est.tech>
Diffstat (limited to 'src/test/java')
-rw-r--r--src/test/java/org/onap/dcaegen2/pmmapper/messagerouter/VESPublisherTest.java89
1 files changed, 89 insertions, 0 deletions
diff --git a/src/test/java/org/onap/dcaegen2/pmmapper/messagerouter/VESPublisherTest.java b/src/test/java/org/onap/dcaegen2/pmmapper/messagerouter/VESPublisherTest.java
new file mode 100644
index 0000000..69d34f8
--- /dev/null
+++ b/src/test/java/org/onap/dcaegen2/pmmapper/messagerouter/VESPublisherTest.java
@@ -0,0 +1,89 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * Copyright (C) 2019 Nordix Foundation.
+ * ================================================================================
+ * 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.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ * ============LICENSE_END=========================================================
+ */
+package org.onap.dcaegen2.pmmapper.messagerouter;
+import static org.junit.jupiter.api.Assertions.assertThrows;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.times;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+import reactor.test.StepVerifier;
+import java.util.Arrays;
+import java.util.List;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mockito;
+import org.onap.dcaegen2.services.pmmapper.exceptions.MRPublisherException;
+import org.onap.dcaegen2.services.pmmapper.messagerouter.VESPublisher;
+import org.onap.dcaegen2.services.pmmapper.model.EnvironmentConfig;
+import org.onap.dcaegen2.services.pmmapper.model.Event;
+import org.onap.dcaegen2.services.pmmapper.model.MapperConfig;
+import org.onap.dcaegen2.services.pmmapper.utils.RequestSender;
+import org.powermock.core.classloader.annotations.PrepareForTest;
+import org.powermock.modules.junit4.PowerMockRunner;
+import reactor.core.publisher.Flux;
+
+@RunWith(PowerMockRunner.class)
+@PrepareForTest(EnvironmentConfig.class)
+public class VESPublisherTest {
+
+ private static String topicURL = "http://mr/topic";
+ private static RequestSender sender;
+ private static MapperConfig config;
+ private VESPublisher sut;
+ private String ves = "{}";
+
+ @Before
+ public void before() throws Exception {
+ config = mock(MapperConfig.class);
+ sender = mock(RequestSender.class);
+ sut = new VESPublisher(config, sender);
+ when(config.getPublisherTopicUrl()).thenReturn(topicURL);
+ }
+
+ @Test
+ public void publish_multiple_success() throws Exception {
+ Event event = mock(Event.class);
+ List<Event> events = Arrays.asList(event,event,event);
+ when(event.getVes()).thenReturn(ves);
+
+ Flux<Event> flux = sut.publish(events);
+
+ verify(sender, times(3)).send(Mockito.anyString(),Mockito.anyString(), Mockito.anyString());
+ StepVerifier.create(flux)
+ .expectNextMatches(event::equals)
+ .expectComplete()
+ .verify();
+ }
+
+ @Test
+ public void publish_multiple_fail() throws Exception {
+ Event event = mock(Event.class);
+ List<Event> events = Arrays.asList(event,event,event);
+ when(event.getVes()).thenReturn(ves);
+ when(sender.send("POST",topicURL,ves)).thenThrow(Exception.class);
+
+ Flux<Event> flux = sut.publish(events);
+
+ StepVerifier.create(flux)
+ .verifyComplete();
+ }
+}