From 269250a5700086cc68d20706ee6a9b345e0387be Mon Sep 17 00:00:00 2001 From: wasala Date: Thu, 17 May 2018 13:36:01 +0200 Subject: Added tests for DmaapConsumerTask Change-Id: I1068eb44eba5871f5c1e44e34f149584e056a7a2 Issue-ID: DCAEGEN2-396 Signed-off-by: wasala --- .../prh/tasks/AAIConsumerTaskImplTest.java | 3 - .../prh/tasks/AAIProducerTaskImplTest.java | 3 - .../prh/tasks/DmaapConsumerTaskImplTest.java | 123 +++++++++++++++++++++ .../services/prh/tasks/DmaapConsumerTaskSpy.java | 15 ++- .../services/prh/tasks/ScheduleControllerSpy.java | 2 - 5 files changed, 135 insertions(+), 11 deletions(-) create mode 100644 prh-app-server/src/test/java/org/onap/dcaegen2/services/prh/tasks/DmaapConsumerTaskImplTest.java (limited to 'prh-app-server/src/test/java/org') diff --git a/prh-app-server/src/test/java/org/onap/dcaegen2/services/prh/tasks/AAIConsumerTaskImplTest.java b/prh-app-server/src/test/java/org/onap/dcaegen2/services/prh/tasks/AAIConsumerTaskImplTest.java index 548a285d..112b6960 100644 --- a/prh-app-server/src/test/java/org/onap/dcaegen2/services/prh/tasks/AAIConsumerTaskImplTest.java +++ b/prh-app-server/src/test/java/org/onap/dcaegen2/services/prh/tasks/AAIConsumerTaskImplTest.java @@ -110,7 +110,6 @@ class AAIConsumerTaskImplTest { when(aaiConsumerTask.resolveConfiguration()).thenReturn(aaiClientConfiguration); doReturn(aaiConsumerClient).when(aaiConsumerTask).resolveClient(); aaiConsumerTask.setAAIClientConfig(); - aaiConsumerTask.initConfigs(); response = aaiConsumerTask.execute(consumerDmaapModel); //then @@ -133,7 +132,6 @@ class AAIConsumerTaskImplTest { when(aaiConsumerTask.resolveConfiguration()).thenReturn(aaiClientConfiguration); doReturn(aaiConsumerClient).when(aaiConsumerTask).resolveClient(); aaiConsumerTask.setAAIClientConfig(); - aaiConsumerTask.initConfigs(); try { response = aaiConsumerTask.execute(consumerDmaapModel); } catch (PrhTaskException e) { @@ -158,7 +156,6 @@ class AAIConsumerTaskImplTest { when(aaiConsumerTask.resolveConfiguration()).thenReturn(aaiClientConfiguration); doReturn(aaiConsumerClient).when(aaiConsumerTask).resolveClient(); aaiConsumerTask.setAAIClientConfig(); - aaiConsumerTask.initConfigs(); try { response = aaiConsumerTask.execute(consumerDmaapModel); } catch (AAINotFoundException e) { diff --git a/prh-app-server/src/test/java/org/onap/dcaegen2/services/prh/tasks/AAIProducerTaskImplTest.java b/prh-app-server/src/test/java/org/onap/dcaegen2/services/prh/tasks/AAIProducerTaskImplTest.java index 203f349e..40fd20af 100644 --- a/prh-app-server/src/test/java/org/onap/dcaegen2/services/prh/tasks/AAIProducerTaskImplTest.java +++ b/prh-app-server/src/test/java/org/onap/dcaegen2/services/prh/tasks/AAIProducerTaskImplTest.java @@ -112,7 +112,6 @@ class AAIProducerTaskImplTest { when(aaiProducerTask.resolveConfiguration()).thenReturn(aaiClientConfiguration); doReturn(aaiProducerClient).when(aaiProducerTask).resolveClient(); aaiProducerTask.setAAIClientConfig(); - aaiProducerTask.initConfigs(); response = aaiProducerTask.execute(consumerDmaapModel); //then @@ -135,7 +134,6 @@ class AAIProducerTaskImplTest { when(aaiProducerTask.resolveConfiguration()).thenReturn(aaiClientConfiguration); doReturn(aaiProducerClient).when(aaiProducerTask).resolveClient(); aaiProducerTask.setAAIClientConfig(); - aaiProducerTask.initConfigs(); try { response = aaiProducerTask.execute(consumerDmaapModel); } catch (AAINotFoundException e) { @@ -160,7 +158,6 @@ class AAIProducerTaskImplTest { when(aaiProducerTask.resolveConfiguration()).thenReturn(aaiClientConfiguration); doReturn(aaiProducerClient).when(aaiProducerTask).resolveClient(); aaiProducerTask.setAAIClientConfig(); - aaiProducerTask.initConfigs(); try { response = aaiProducerTask.execute(consumerDmaapModel); } catch (AAINotFoundException e) { diff --git a/prh-app-server/src/test/java/org/onap/dcaegen2/services/prh/tasks/DmaapConsumerTaskImplTest.java b/prh-app-server/src/test/java/org/onap/dcaegen2/services/prh/tasks/DmaapConsumerTaskImplTest.java new file mode 100644 index 00000000..786c04f9 --- /dev/null +++ b/prh-app-server/src/test/java/org/onap/dcaegen2/services/prh/tasks/DmaapConsumerTaskImplTest.java @@ -0,0 +1,123 @@ +/* + * ============LICENSE_START======================================================= + * PNF-REGISTRATION-HANDLER + * ================================================================================ + * Copyright (C) 2018 NOKIA Intellectual Property. All rights reserved. + * ================================================================================ + * 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. + * ============LICENSE_END========================================================= + */ +package org.onap.dcaegen2.services.prh.tasks; + +import static org.mockito.Mockito.doReturn; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.spy; +import static org.mockito.Mockito.times; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.verifyNoMoreInteractions; +import static org.mockito.Mockito.when; + +import java.util.Optional; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Test; +import org.onap.dcaegen2.services.prh.config.DmaapConsumerConfiguration; +import org.onap.dcaegen2.services.prh.config.ImmutableDmaapConsumerConfiguration; +import org.onap.dcaegen2.services.prh.configuration.AppConfig; +import org.onap.dcaegen2.services.prh.exceptions.PrhTaskException; +import org.onap.dcaegen2.services.prh.model.ConsumerDmaapModel; +import org.onap.dcaegen2.services.prh.model.ImmutableConsumerDmaapModel; +import org.onap.dcaegen2.services.prh.service.consumer.ExtendedDmaapConsumerHttpClientImpl; + +/** + * @author Przemysław Wąsala on 5/17/18 + */ +class DmaapConsumerTaskImplTest { + + private static ConsumerDmaapModel consumerDmaapModel; + private static DmaapConsumerTaskImpl dmaapConsumerTask; + private static ExtendedDmaapConsumerHttpClientImpl extendedDmaapConsumerHttpClient; + private static AppConfig appConfig; + private static DmaapConsumerConfiguration dmaapConsumerConfiguration; + + + @BeforeAll + public static void setUp() { + dmaapConsumerConfiguration = new ImmutableDmaapConsumerConfiguration.Builder().consumerGroup("OpenDCAE-c12") + .consumerId("c12").dmaapContentType("application/json").dmaapHostName("54.45.33.2").dmaapPortNumber(1234) + .dmaapProtocol("https").dmaapUserName("PRH").dmaapUserPassword("PRH") + .dmaapTopicName("unauthenticated.SEC_OTHER_OUTPUT").timeoutMS(-1).messageLimit(-1).build(); + + consumerDmaapModel = ImmutableConsumerDmaapModel.builder().ipv4("10.16.123.234") + .ipv6("0:0:0:0:0:FFFF:0A10:7BEA") + .pnfName("NOKQTFCOC540002E").build(); + appConfig = mock(AppConfig.class); + } + + @Test + public void whenPassedObjectDoesntFit_DoNotThrowsPrhTaskException() { + //given + Object response = null; + extendedDmaapConsumerHttpClient = mock(ExtendedDmaapConsumerHttpClientImpl.class); + + //when + when(extendedDmaapConsumerHttpClient.getHttpConsumerResponse()).thenReturn(Optional.empty()); + when(appConfig.getDmaapConsumerConfiguration()).thenReturn(dmaapConsumerConfiguration); + dmaapConsumerTask = spy(new DmaapConsumerTaskImpl(appConfig)); + when(dmaapConsumerTask.resolveConfiguration()).thenReturn(dmaapConsumerConfiguration); + doReturn(extendedDmaapConsumerHttpClient).when(dmaapConsumerTask).resolveClient(); + dmaapConsumerTask.setDmaapClientConfig(); + try { + response = dmaapConsumerTask.execute(consumerDmaapModel); + } catch (PrhTaskException e) { + e.printStackTrace(); + } + + //then + verify(extendedDmaapConsumerHttpClient, times(1)).getHttpConsumerResponse(); + verifyNoMoreInteractions(extendedDmaapConsumerHttpClient); + Assertions.assertNull(response); + } + + @Test + public void whenPassedObjectFits_ReturnsCorrectResponse() throws PrhTaskException { + //given + Object response; + extendedDmaapConsumerHttpClient = mock(ExtendedDmaapConsumerHttpClientImpl.class); + String message = + "{\"event\":{\"commonEventHeader\":{\"domain\":\"other\",\"eventId\":\"<>-reg\",\"eventName\"" + + ":\"pnfRegistration_5GDU\",\"eventType\":\"pnfRegistration\",\"internalHeaderFields\":{}," + + "\"lastEpochMicrosec\":1519837825682,\"nfNamingCode\":\"5GRAN\",\"nfcNamingCode\":\"5DU\"," + + "\"priority\":\"Normal\",\"reportingEntityName\":\"5GRAN_DU\",\"sequence\":0,\"sourceId\":" + + "\"<>\",\"sourceName\":\"5GRAN_DU\",\"startEpochMicrosec\":1519837825682,\"version\":3}," + + "\"otherFields\":{\"otherFieldsVersion\":1,\"pnfFamily\":\"BBU\",\"pnfLastServiceDate\":1517206400," + + "\"pnfManufactureDate\":1516406400,\"pnfModelNumber\":\"AJ02\",\"pnfOamIpv4Address\":\"10.16.123.234\"," + + "\"pnfOamIpv6Address\":\"0:0:0:0:0:FFFF:0A10:7BEA\",\"pnfSerialNumber\":\"QTFCOC540002E\"," + + "\"pnfSoftwareVersion\":\"v4.5.0.1\",\"pnfType\":\"AirScale\",\"pnfVendorName\":\"Nokia\"}}}"; + //when + when(extendedDmaapConsumerHttpClient.getHttpConsumerResponse()).thenReturn(Optional.of(message)); + when(appConfig.getDmaapConsumerConfiguration()).thenReturn(dmaapConsumerConfiguration); + dmaapConsumerTask = spy(new DmaapConsumerTaskImpl(appConfig)); + when(dmaapConsumerTask.resolveConfiguration()).thenReturn(dmaapConsumerConfiguration); + doReturn(extendedDmaapConsumerHttpClient).when(dmaapConsumerTask).resolveClient(); + dmaapConsumerTask.setDmaapClientConfig(); + response = dmaapConsumerTask.execute(consumerDmaapModel); + + //then + verify(extendedDmaapConsumerHttpClient, times(1)).getHttpConsumerResponse(); + verifyNoMoreInteractions(extendedDmaapConsumerHttpClient); + Assertions.assertNotNull(response); + Assertions.assertEquals(consumerDmaapModel, response); + + } +} \ No newline at end of file diff --git a/prh-app-server/src/test/java/org/onap/dcaegen2/services/prh/tasks/DmaapConsumerTaskSpy.java b/prh-app-server/src/test/java/org/onap/dcaegen2/services/prh/tasks/DmaapConsumerTaskSpy.java index 1d86d24f..60e1bd54 100644 --- a/prh-app-server/src/test/java/org/onap/dcaegen2/services/prh/tasks/DmaapConsumerTaskSpy.java +++ b/prh-app-server/src/test/java/org/onap/dcaegen2/services/prh/tasks/DmaapConsumerTaskSpy.java @@ -19,12 +19,16 @@ */ package org.onap.dcaegen2.services.prh.tasks; +import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.spy; import static org.mockito.Mockito.when; +import org.onap.dcaegen2.services.prh.config.AAIClientConfiguration; import org.onap.dcaegen2.services.prh.config.DmaapConsumerConfiguration; import org.onap.dcaegen2.services.prh.configuration.AppConfig; +import org.onap.dcaegen2.services.prh.service.AAIProducerClient; +import org.onap.dcaegen2.services.prh.service.consumer.ExtendedDmaapConsumerHttpClientImpl; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Primary; @@ -38,8 +42,13 @@ public class DmaapConsumerTaskSpy { @Bean @Primary public Task registerSimpleDmaapConsumerTask() { - AppConfig appConfig = mock(AppConfig.class); - when(appConfig.getDmaapConsumerConfiguration()).thenReturn(mock(DmaapConsumerConfiguration.class)); - return spy(new DmaapConsumerTaskImpl(appConfig)); + AppConfig appConfig = spy(AppConfig.class); + doReturn(mock(DmaapConsumerConfiguration.class)).when(appConfig).getDmaapConsumerConfiguration(); + DmaapConsumerTaskImpl dmaapConsumerTask = spy(new DmaapConsumerTaskImpl(appConfig)); + ExtendedDmaapConsumerHttpClientImpl extendedDmaapConsumerHttpClient = mock( + ExtendedDmaapConsumerHttpClientImpl.class); + doReturn(mock(DmaapConsumerConfiguration.class)).when(dmaapConsumerTask).resolveConfiguration(); + doReturn(extendedDmaapConsumerHttpClient).when(dmaapConsumerTask).resolveClient(); + return dmaapConsumerTask; } } diff --git a/prh-app-server/src/test/java/org/onap/dcaegen2/services/prh/tasks/ScheduleControllerSpy.java b/prh-app-server/src/test/java/org/onap/dcaegen2/services/prh/tasks/ScheduleControllerSpy.java index 27083c04..2bff9e02 100644 --- a/prh-app-server/src/test/java/org/onap/dcaegen2/services/prh/tasks/ScheduleControllerSpy.java +++ b/prh-app-server/src/test/java/org/onap/dcaegen2/services/prh/tasks/ScheduleControllerSpy.java @@ -32,7 +32,6 @@ import org.springframework.context.annotation.Primary; @Configuration public class ScheduleControllerSpy { - @Autowired private DmaapConsumerTask dmaapConsumerTaskImplSpy; @@ -42,7 +41,6 @@ public class ScheduleControllerSpy { @Autowired private AAIProducerTask aaiPublisherTaskImplSpy; - @Bean @Primary public ScheduledTasks registerSimpleScheduledTask() { -- cgit 1.2.3-korg