From ab26367e1e54674d6eb597b005b15304b6502e88 Mon Sep 17 00:00:00 2001 From: emartin Date: Fri, 22 Mar 2019 16:45:31 +0000 Subject: Publish VES event to MessageRouter via http Change-Id: Ic5ed1fad1182e7343f213488c4015d2683ab8ddc Issue-ID: DCAEGEN2-1273 Signed-off-by: emartin --- .../pmmapper/messagerouter/VESPublisherTest.java | 89 ++++++++++++++++++++++ 1 file changed, 89 insertions(+) create mode 100644 src/test/java/org/onap/dcaegen2/pmmapper/messagerouter/VESPublisherTest.java (limited to 'src/test/java') 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 events = Arrays.asList(event,event,event); + when(event.getVes()).thenReturn(ves); + + Flux 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 events = Arrays.asList(event,event,event); + when(event.getVes()).thenReturn(ves); + when(sender.send("POST",topicURL,ves)).thenThrow(Exception.class); + + Flux flux = sut.publish(events); + + StepVerifier.create(flux) + .verifyComplete(); + } +} -- cgit 1.2.3-korg