From: grabinsk Date: Thu, 23 May 2019 12:25:24 +0000 (+0200) Subject: Fix sending PNF_READY notification after update to El Alto SDK version usage X-Git-Tag: 1.3.1~43 X-Git-Url: https://gerrit.onap.org/r/gitweb?a=commitdiff_plain;h=14433b1454dd4b881b8b36f184d63528a43931ba;p=dcaegen2%2Fservices%2Fprh.git Fix sending PNF_READY notification after update to El Alto SDK version usage Change-Id: I06c1ae2b2a9831a4c31e09fafbe1500c10714caa Issue-ID: DCAEGEN2-1501 Signed-off-by: grabinsk --- diff --git a/prh-app-server/src/main/java/org/onap/dcaegen2/services/prh/tasks/DmaapPublisherTaskImpl.java b/prh-app-server/src/main/java/org/onap/dcaegen2/services/prh/tasks/DmaapPublisherTaskImpl.java index 9cec7779..1a528180 100644 --- a/prh-app-server/src/main/java/org/onap/dcaegen2/services/prh/tasks/DmaapPublisherTaskImpl.java +++ b/prh-app-server/src/main/java/org/onap/dcaegen2/services/prh/tasks/DmaapPublisherTaskImpl.java @@ -20,10 +20,9 @@ package org.onap.dcaegen2.services.prh.tasks; -import com.google.gson.JsonPrimitive; import org.onap.dcaegen2.services.prh.exceptions.DmaapNotFoundException; import org.onap.dcaegen2.services.prh.model.ConsumerDmaapModel; -import org.onap.dcaegen2.services.prh.model.PnfReadyJsonBodyBuilderImpl; +import org.onap.dcaegen2.services.prh.model.PnfReadyJsonBodyBuilder; import org.onap.dcaegen2.services.sdk.rest.services.dmaap.client.api.MessageRouterPublisher; import org.onap.dcaegen2.services.sdk.rest.services.dmaap.client.model.MessageRouterPublishRequest; import org.onap.dcaegen2.services.sdk.rest.services.dmaap.client.model.MessageRouterPublishResponse; @@ -42,7 +41,7 @@ public class DmaapPublisherTaskImpl implements DmaapPublisherTask { private final Supplier config; private final MessageRouterPublisherResolver messageRouterPublisherClientResolver; - private final PnfReadyJsonBodyBuilderImpl pnfReadyJsonBodyBuilder = new PnfReadyJsonBodyBuilderImpl(); + private final PnfReadyJsonBodyBuilder pnfReadyJsonBodyBuilder = new PnfReadyJsonBodyBuilder(); public DmaapPublisherTaskImpl(Supplier config, MessageRouterPublisherResolver messageRouterPublisherClientResolver) { @@ -57,9 +56,8 @@ public class DmaapPublisherTaskImpl implements DmaapPublisherTask { } MessageRouterPublisher messageRouterPublisher = messageRouterPublisherClientResolver.resolveClient(); LOGGER.info("Method called with arg {}", consumerDmaapModel); - String json = pnfReadyJsonBodyBuilder.createJsonBody(consumerDmaapModel); return messageRouterPublisher.put( config.get(), - Flux.just(json).map(JsonPrimitive::new)); + Flux.just(pnfReadyJsonBodyBuilder.createJsonBody(consumerDmaapModel))); } } \ No newline at end of file diff --git a/prh-app-server/src/test/java/org/onap/dcaegen2/services/prh/tasks/DmaapPublisherTaskImplTest.java b/prh-app-server/src/test/java/org/onap/dcaegen2/services/prh/tasks/DmaapPublisherTaskImplTest.java index 6347ad3d..6f38d87d 100644 --- a/prh-app-server/src/test/java/org/onap/dcaegen2/services/prh/tasks/DmaapPublisherTaskImplTest.java +++ b/prh-app-server/src/test/java/org/onap/dcaegen2/services/prh/tasks/DmaapPublisherTaskImplTest.java @@ -20,7 +20,8 @@ package org.onap.dcaegen2.services.prh.tasks; -import com.google.gson.JsonPrimitive; +import com.google.gson.JsonElement; +import com.google.gson.JsonParser; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; @@ -38,10 +39,8 @@ import org.onap.dcaegen2.services.sdk.rest.services.dmaap.client.api.MessageRout import org.onap.dcaegen2.services.sdk.rest.services.dmaap.client.model.ImmutableMessageRouterPublishRequest; import org.onap.dcaegen2.services.sdk.rest.services.dmaap.client.model.MessageRouterPublishRequest; import reactor.core.publisher.Flux; +import reactor.test.StepVerifier; -import java.util.function.Supplier; - -import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertThrows; import static org.mockito.ArgumentMatchers.eq; import static org.mockito.Mockito.verify; @@ -53,30 +52,27 @@ import static org.mockito.Mockito.when; @ExtendWith(MockitoExtension.class) class DmaapPublisherTaskImplTest { - private static DmaapPublisherTaskImpl dmaapPublisherTask; + private DmaapPublisherTaskImpl dmaapPublisherTask; + + private MessageRouterPublishRequest mrRequest = createMRRequest(); @Mock private static MessageRouterPublisherResolver messageRouterPublisherClientResolver; @Mock private static MessageRouterPublisher messageRouterPublisher; - private Supplier configSupplier; - - @Captor - private ArgumentCaptor> fluxCaptor; + private ArgumentCaptor> fluxCaptor; @BeforeEach void beforeEach() { when(messageRouterPublisherClientResolver.resolveClient()).thenReturn(messageRouterPublisher); - MessageRouterPublishRequest mrRequest = createMRRequest(); - configSupplier = () -> mrRequest; } @Test void execute_whenPassedObjectDoesntFit_ThrowsPrhTaskException() { //given - dmaapPublisherTask = new DmaapPublisherTaskImpl(configSupplier, messageRouterPublisherClientResolver); + dmaapPublisherTask = new DmaapPublisherTaskImpl(() -> mrRequest, messageRouterPublisherClientResolver); //when Executable executableFunction = () -> dmaapPublisherTask.execute(null); //then @@ -86,12 +82,15 @@ class DmaapPublisherTaskImplTest { @Test void execute_whenPassedObjectFits_ReturnsCorrectStatus() throws DmaapNotFoundException { //given - dmaapPublisherTask = new DmaapPublisherTaskImpl(configSupplier, messageRouterPublisherClientResolver); + dmaapPublisherTask = new DmaapPublisherTaskImpl(() -> mrRequest, messageRouterPublisherClientResolver); //when dmaapPublisherTask.execute(createConsumerDmaapModel()); //then - verify(messageRouterPublisher).put(eq(configSupplier.get()), fluxCaptor.capture()); - assertEquals(new JsonPrimitive("{\"correlationId\":\"NOKQTFCOC540002E\"}"), fluxCaptor.getValue().blockFirst()); + verify(messageRouterPublisher).put(eq(mrRequest), fluxCaptor.capture()); + + StepVerifier.create(fluxCaptor.getValue()) + .expectNext(new JsonParser().parse("{\"correlationId\":\"NOKQTFCOC540002E\"}")) + .verifyComplete(); } diff --git a/prh-commons/src/main/java/org/onap/dcaegen2/services/prh/model/PnfReadyJsonBodyBuilderImpl.java b/prh-commons/src/main/java/org/onap/dcaegen2/services/prh/model/PnfReadyJsonBodyBuilder.java similarity index 75% rename from prh-commons/src/main/java/org/onap/dcaegen2/services/prh/model/PnfReadyJsonBodyBuilderImpl.java rename to prh-commons/src/main/java/org/onap/dcaegen2/services/prh/model/PnfReadyJsonBodyBuilder.java index 8584f01f..b39c4690 100644 --- a/prh-commons/src/main/java/org/onap/dcaegen2/services/prh/model/PnfReadyJsonBodyBuilderImpl.java +++ b/prh-commons/src/main/java/org/onap/dcaegen2/services/prh/model/PnfReadyJsonBodyBuilder.java @@ -20,16 +20,13 @@ package org.onap.dcaegen2.services.prh.model; -import com.google.gson.GsonBuilder; +import com.google.gson.JsonElement; import com.google.gson.JsonObject; -import com.google.gson.TypeAdapterFactory; import org.onap.dcaegen2.services.prh.model.ImmutableConsumerDmaapModel.Builder; -import org.onap.dcaegen2.services.sdk.rest.services.model.JsonBodyBuilder; +import org.onap.dcaegen2.services.prh.model.utils.PrhModelAwareGsonBuilder; -import java.util.ServiceLoader; - -public class PnfReadyJsonBodyBuilderImpl implements JsonBodyBuilder { +public class PnfReadyJsonBodyBuilder { /** * Method for serialization object by GSON. @@ -37,9 +34,7 @@ public class PnfReadyJsonBodyBuilderImpl implements JsonBodyBuilder