diff options
author | Stavros Kanarakis <stavros.kanarakis@nokia.com> | 2020-02-28 21:53:04 +0200 |
---|---|---|
committer | Stavros Kanarakis <stavros.kanarakis@nokia.com> | 2020-03-03 17:30:22 +0200 |
commit | 22025d4ddfcccd86a2f93be7dadea9735e4b4528 (patch) | |
tree | 6b12e0770f65cb6a7389c0300fe95454ac1717fb /components/bbs-event-processor/src/test/java/org/onap/bbs/event/processor/tasks/DmaapPublisherTaskImplTest.java | |
parent | 82a39f7da3177a9b9b700c7291ed5ea47c90e478 (diff) |
Upgrade of BBS-ep service
Upgraded service to use latest DCAE-SDK
Upgraded many of the dependencies to latest versions
Introduced Java 11
Change-Id: I29d265d2a75aa80749f567cfb10920b2c45c2cec
Issue-ID: DCAEGEN2-2105
Signed-off-by: Stavros Kanarakis <stavros.kanarakis@nokia.com>
Diffstat (limited to 'components/bbs-event-processor/src/test/java/org/onap/bbs/event/processor/tasks/DmaapPublisherTaskImplTest.java')
-rw-r--r-- | components/bbs-event-processor/src/test/java/org/onap/bbs/event/processor/tasks/DmaapPublisherTaskImplTest.java | 137 |
1 files changed, 60 insertions, 77 deletions
diff --git a/components/bbs-event-processor/src/test/java/org/onap/bbs/event/processor/tasks/DmaapPublisherTaskImplTest.java b/components/bbs-event-processor/src/test/java/org/onap/bbs/event/processor/tasks/DmaapPublisherTaskImplTest.java index 436206d2..7c158489 100644 --- a/components/bbs-event-processor/src/test/java/org/onap/bbs/event/processor/tasks/DmaapPublisherTaskImplTest.java +++ b/components/bbs-event-processor/src/test/java/org/onap/bbs/event/processor/tasks/DmaapPublisherTaskImplTest.java @@ -21,7 +21,6 @@ package org.onap.bbs.event.processor.tasks; import static org.mockito.ArgumentMatchers.any; -import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.times; import static org.mockito.Mockito.verify; @@ -30,55 +29,52 @@ import static org.mockito.Mockito.when; import java.util.LinkedHashMap; import java.util.Map; -import java.util.Optional; - -import javax.net.ssl.SSLException; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.function.Executable; import org.onap.bbs.event.processor.config.ApplicationConfiguration; +import org.onap.bbs.event.processor.config.DmaapProducerProperties; import org.onap.bbs.event.processor.exceptions.DmaapException; import org.onap.bbs.event.processor.model.ControlLoopPublisherDmaapModel; import org.onap.bbs.event.processor.model.ImmutableControlLoopPublisherDmaapModel; -import org.onap.dcaegen2.services.sdk.rest.services.adapters.http.HttpResponse; -import org.onap.dcaegen2.services.sdk.rest.services.dmaap.client.config.DmaapPublisherConfiguration; -import org.onap.dcaegen2.services.sdk.rest.services.dmaap.client.config.ImmutableDmaapPublisherConfiguration; -import org.onap.dcaegen2.services.sdk.rest.services.dmaap.client.service.producer.DMaaPPublisherReactiveHttpClient; -import org.onap.dcaegen2.services.sdk.rest.services.dmaap.client.service.producer.PublisherReactiveHttpClientFactory; -import org.springframework.http.HttpStatus; - -import reactor.core.publisher.Mono; +import org.onap.dcaegen2.services.sdk.rest.services.dmaap.client.api.MessageRouterPublisher; +import org.onap.dcaegen2.services.sdk.rest.services.dmaap.client.model.MessageRouterPublishResponse; +import org.onap.dcaegen2.services.sdk.rest.services.dmaap.client.model.config.MessageRouterPublisherConfig; + +import reactor.core.publisher.Flux; import reactor.test.StepVerifier; class DmaapPublisherTaskImplTest { + private static final String DMAAP_PROTOCOL = "http"; + private static final String DMAAP_HOST = "message-router.onap.svc.cluster.local"; + private static final int DMAAP_PORT = 3904; + private static final String DMAAP_TOPIC = "unauthenticated.DCAE_CL_OUTPUT"; + private static ControlLoopPublisherDmaapModel controlLoopPublisherDmaapModel; private static DmaapPublisherTaskImpl task; - private static DMaaPPublisherReactiveHttpClient reactiveHttpClient; private static ApplicationConfiguration configuration; - private static DmaapPublisherConfiguration dmaapPublisherConfiguration; @BeforeAll static void setUp() { - dmaapPublisherConfiguration = testVersionOfDmaapPublisherConfiguration(); configuration = mock(ApplicationConfiguration.class); - final String closedLoopEventClient = "DCAE.BBS_mSInstance"; - final String policyVersion = "1.0.0.5"; - final String policyName = "CPE_Authentication"; - final String policyScope = + final var closedLoopEventClient = "DCAE.BBS_mSInstance"; + final var policyVersion = "1.0.0.5"; + final var policyName = "CPE_Authentication"; + final var policyScope = "service=HSIAService,type=SampleType," + "closedLoopControlName=CL-CPE_A-d925ed73-8231-4d02-9545-db4e101f88f8"; - final String targetType = "VM"; - final long closedLoopAlarmStart = 1484677482204798L; - final String closedLoopEventStatus = "ONSET"; - final String closedLoopControlName = "ControlLoop-CPE_A-2179b738-fd36-4843-a71a-a8c24c70c88b"; - final String version = "1.0.2"; - final String target = "vserver.vserver-name"; - final String requestId = "97964e10-686e-4790-8c45-bdfa61df770f"; - final String from = "DCAE"; + final var targetType = "VM"; + final var closedLoopAlarmStart = 1484677482204798L; + final var closedLoopEventStatus = "ONSET"; + final var closedLoopControlName = "ControlLoop-CPE_A-2179b738-fd36-4843-a71a-a8c24c70c88b"; + final var version = "1.0.2"; + final var target = "vserver.vserver-name"; + final var requestId = "97964e10-686e-4790-8c45-bdfa61df770f"; + final var from = "DCAE"; final Map<String, String> aaiEnrichmentData = new LinkedHashMap<>(); aaiEnrichmentData.put("service-information.service-instance-id", "service-instance-id-example"); @@ -100,77 +96,64 @@ class DmaapPublisherTaskImplTest { .requestId(requestId) .originator(from) .build(); + var props = mock(DmaapProducerProperties.class); + when(props.getDmaapProtocol()).thenReturn(DMAAP_PROTOCOL); + when(props.getDmaapHostName()).thenReturn(DMAAP_HOST); + when(props.getDmaapPortNumber()).thenReturn(DMAAP_PORT); + when(props.getDmaapTopicName()).thenReturn(DMAAP_TOPIC); + when(configuration.getDmaapProducerProperties()).thenReturn(props); + + var publisherConfig = mock(MessageRouterPublisherConfig.class); + when(configuration.getDmaapPublisherConfiguration()).thenReturn(publisherConfig); + - when(configuration.getDmaapPublisherConfiguration()).thenReturn(dmaapPublisherConfiguration); } @Test void passingNullMessage_ExceptionIsRaised() { - task = new DmaapPublisherTaskImpl(configuration); - Executable executableFunction = () -> task.execute(null); Assertions.assertThrows(DmaapException.class, executableFunction, "Input message is invalid"); } @Test - void passingNormalMessage_ReactiveClientProcessesIt() throws DmaapException, SSLException { - HttpResponse response = setupMocks(HttpStatus.OK.value()); - - StepVerifier.create(task.execute(controlLoopPublisherDmaapModel)).expectSubscription() - .expectNext(response).verifyComplete(); - - verify(reactiveHttpClient, times(1)) - .getDMaaPProducerResponse(controlLoopPublisherDmaapModel, Optional.empty()); - verifyNoMoreInteractions(reactiveHttpClient); - } + void passingNormalMessage_ReactiveClientProcessesIt() throws DmaapException { + var publisher = mock(MessageRouterPublisher.class); + task = new DmaapPublisherTaskImpl(configuration, publisher); - @Test - void passingNormalMessage_IncorrectResponseIsHandled() throws DmaapException, SSLException { - HttpResponse response = setupMocks(HttpStatus.UNAUTHORIZED.value()); + var response = mockResponse(true); + when(publisher.put(any(),any())).thenReturn(Flux.just(response)); - StepVerifier.create(task.execute(controlLoopPublisherDmaapModel)).expectSubscription() - .expectNext(response).verifyComplete(); + StepVerifier.create(task.execute(controlLoopPublisherDmaapModel)) + .expectSubscription() + .assertNext(r -> Assertions.assertTrue(r.successful())) + .verifyComplete(); - verify(reactiveHttpClient, times(1)) - .getDMaaPProducerResponse(controlLoopPublisherDmaapModel, Optional.empty()); - verifyNoMoreInteractions(reactiveHttpClient); + verify(publisher, times(1)).put(any(),any()); + verifyNoMoreInteractions(publisher); } - // We can safely suppress unchecked assignment warning here since it is a mock class - @SuppressWarnings("unchecked") - private HttpResponse setupMocks(Integer httpResponseCode) throws SSLException { - - HttpResponse response = mock(HttpResponse.class); - when(response.statusCode()).thenReturn(httpResponseCode); - - reactiveHttpClient = mock(DMaaPPublisherReactiveHttpClient.class); - when(reactiveHttpClient.getDMaaPProducerResponse(any(), any(Optional.class))) - .thenReturn(Mono.just(response)); + @Test + void passingNormalMessage_IncorrectResponseIsHandled() throws DmaapException { + var publisher = mock(MessageRouterPublisher.class); + task = new DmaapPublisherTaskImpl(configuration, publisher); - PublisherReactiveHttpClientFactory httpClientFactory = mock(PublisherReactiveHttpClientFactory.class); - doReturn(reactiveHttpClient).when(httpClientFactory).create(dmaapPublisherConfiguration); + var response = mockResponse(false); + when(publisher.put(any(),any())).thenReturn(Flux.just(response)); - task = new DmaapPublisherTaskImpl(configuration, httpClientFactory); + StepVerifier.create(task.execute(controlLoopPublisherDmaapModel)) + .expectSubscription() + .assertNext(r -> Assertions.assertFalse(r.successful())) + .verifyComplete(); - return response; + verify(publisher, times(1)).put(any(),any()); + verifyNoMoreInteractions(publisher); } - private static DmaapPublisherConfiguration testVersionOfDmaapPublisherConfiguration() { - return new ImmutableDmaapPublisherConfiguration.Builder() - .dmaapContentType("application/json") - .dmaapHostName("message-router.onap.svc.cluster.local") - .dmaapPortNumber(3904) - .dmaapProtocol("http") - .dmaapUserName("admin") - .dmaapUserPassword("admin") - .trustStorePath("/opt/app/bbs/local/org.onap.bbs.trust.jks") - .trustStorePasswordPath("change_it") - .keyStorePath("/opt/app/bbs/local/org.onap.bbs.p12") - .keyStorePasswordPath("change_it") - .enableDmaapCertAuth(false) - .dmaapTopicName("/events/unauthenticated.DCAE_CL_OUTPUT") - .build(); + private MessageRouterPublishResponse mockResponse(boolean isSuccess) { + var response = mock(MessageRouterPublishResponse.class); + when(response.successful()).thenReturn(isSuccess); + return response; } }
\ No newline at end of file |