Added JUnit for DMaaPWebClient 43/59343/1
authorwasala <przemyslaw.wasala@nokia.com>
Thu, 5 Jul 2018 07:10:39 +0000 (09:10 +0200)
committerwasala <przemyslaw.wasala@nokia.com>
Tue, 7 Aug 2018 07:50:43 +0000 (09:50 +0200)
Refactored DMaaP tasks for
creation WebClient in higher
abstraction level

Change-Id: I4ae4f99d1f739a1718c5520929fc4eb8b4a6178e
Issue-ID: DCAEGEN2-563
Signed-off-by: wasala <przemyslaw.wasala@nokia.com>
prh-app-server/src/main/java/org/onap/dcaegen2/services/prh/tasks/DmaapConsumerTask.java
prh-app-server/src/main/java/org/onap/dcaegen2/services/prh/tasks/DmaapConsumerTaskImpl.java
prh-app-server/src/main/java/org/onap/dcaegen2/services/prh/tasks/DmaapPublisherTask.java
prh-app-server/src/main/java/org/onap/dcaegen2/services/prh/tasks/DmaapPublisherTaskImpl.java
prh-dmaap-client/src/test/java/org/onap/dcaegen2/services/prh/service/DMaaPReactiveWebClientTest.java [new file with mode: 0644]
prh-dmaap-client/src/test/java/org/onap/dcaegen2/services/prh/service/config/DmaapConsumerConfigurationTest.java
prh-dmaap-client/src/test/java/org/onap/dcaegen2/services/prh/service/producer/DMaaPProducerReactiveHttpClientTest.java

index 6db36a8..8df564d 100644 (file)
  */
 package org.onap.dcaegen2.services.prh.tasks;
 
-import java.util.Optional;
+import org.onap.dcaegen2.services.prh.config.DmaapConsumerConfiguration;
 import org.onap.dcaegen2.services.prh.exceptions.PrhTaskException;
 import org.onap.dcaegen2.services.prh.model.ConsumerDmaapModel;
+import org.onap.dcaegen2.services.prh.service.DMaaPReactiveWebClient;
 import org.onap.dcaegen2.services.prh.service.consumer.DMaaPConsumerReactiveHttpClient;
+import org.springframework.web.reactive.function.client.WebClient;
 import reactor.core.publisher.Mono;
 
 /**
@@ -36,5 +38,15 @@ abstract class DmaapConsumerTask {
 
     abstract void initConfigs();
 
+    protected abstract DmaapConsumerConfiguration resolveConfiguration();
+
     protected abstract Mono<ConsumerDmaapModel> execute(String object) throws PrhTaskException;
+
+    WebClient buildWebClient() {
+        DmaapConsumerConfiguration dmaapConsumerConfiguration = resolveConfiguration();
+        return new DMaaPReactiveWebClient.WebClientBuilder()
+            .dmaapContentType(dmaapConsumerConfiguration.dmaapContentType())
+            .dmaapUserName(dmaapConsumerConfiguration.dmaapUserName())
+            .dmaapUserPassword(dmaapConsumerConfiguration.dmaapUserPassword()).build();
+    }
 }
index 90382e5..8c74bac 100644 (file)
@@ -24,7 +24,6 @@ import org.onap.dcaegen2.services.prh.config.DmaapConsumerConfiguration;
 import org.onap.dcaegen2.services.prh.configuration.AppConfig;
 import org.onap.dcaegen2.services.prh.configuration.Config;
 import org.onap.dcaegen2.services.prh.model.ConsumerDmaapModel;
-import org.onap.dcaegen2.services.prh.service.DMaaPReactiveWebClient;
 import org.onap.dcaegen2.services.prh.service.DmaapConsumerJsonParser;
 import org.onap.dcaegen2.services.prh.service.consumer.DMaaPConsumerReactiveHttpClient;
 import org.slf4j.Logger;
@@ -73,21 +72,15 @@ public class DmaapConsumerTaskImpl extends DmaapConsumerTask {
         prhAppConfig.initFileStreamReader();
     }
 
+    @Override
     protected DmaapConsumerConfiguration resolveConfiguration() {
         return prhAppConfig.getDmaapConsumerConfiguration();
     }
 
     @Override
     DMaaPConsumerReactiveHttpClient resolveClient() {
-
         return Optional.ofNullable(dMaaPConsumerReactiveHttpClient)
-            .orElseGet(() -> {
-                DmaapConsumerConfiguration dmaapConsumerConfiguration = resolveConfiguration();
-                return new DMaaPConsumerReactiveHttpClient(dmaapConsumerConfiguration).createDMaaPWebClient(
-                    new DMaaPReactiveWebClient.WebClientBuilder()
-                        .dmaapContentType(dmaapConsumerConfiguration.dmaapContentType())
-                        .dmaapUserName(dmaapConsumerConfiguration.dmaapUserName())
-                        .dmaapUserPassword(dmaapConsumerConfiguration.dmaapUserPassword()).build());
-            });
+            .orElseGet(() -> new DMaaPConsumerReactiveHttpClient(resolveConfiguration()).createDMaaPWebClient(
+                buildWebClient()));
     }
 }
index 27670e2..af8d14a 100644 (file)
  */
 package org.onap.dcaegen2.services.prh.tasks;
 
+import org.onap.dcaegen2.services.prh.config.DmaapPublisherConfiguration;
 import org.onap.dcaegen2.services.prh.exceptions.PrhTaskException;
 import org.onap.dcaegen2.services.prh.model.ConsumerDmaapModel;
+import org.onap.dcaegen2.services.prh.service.DMaaPReactiveWebClient;
 import org.onap.dcaegen2.services.prh.service.producer.DMaaPProducerReactiveHttpClient;
+import org.springframework.web.reactive.function.client.WebClient;
 import reactor.core.publisher.Mono;
 
 /**
@@ -33,5 +36,15 @@ abstract class DmaapPublisherTask {
 
     abstract DMaaPProducerReactiveHttpClient resolveClient();
 
+    protected abstract DmaapPublisherConfiguration resolveConfiguration();
+
     protected abstract Mono<Integer> execute(Mono<ConsumerDmaapModel> consumerDmaapModel) throws PrhTaskException;
+
+    WebClient buildWebClient() {
+        DmaapPublisherConfiguration dmaapPublisherConfiguration = resolveConfiguration();
+        return new DMaaPReactiveWebClient.WebClientBuilder()
+            .dmaapContentType(dmaapPublisherConfiguration.dmaapContentType())
+            .dmaapUserName(dmaapPublisherConfiguration.dmaapUserName())
+            .dmaapUserPassword(dmaapPublisherConfiguration.dmaapUserPassword()).build();
+    }
 }
index faf43bc..11281d8 100644 (file)
@@ -25,7 +25,6 @@ import org.onap.dcaegen2.services.prh.configuration.AppConfig;
 import org.onap.dcaegen2.services.prh.configuration.Config;
 import org.onap.dcaegen2.services.prh.exceptions.DmaapNotFoundException;
 import org.onap.dcaegen2.services.prh.model.ConsumerDmaapModel;
-import org.onap.dcaegen2.services.prh.service.DMaaPReactiveWebClient;
 import org.onap.dcaegen2.services.prh.service.producer.DMaaPProducerReactiveHttpClient;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -64,6 +63,7 @@ public class DmaapPublisherTaskImpl extends DmaapPublisherTask {
         return publish(consumerDmaapModel);
     }
 
+    @Override
     protected DmaapPublisherConfiguration resolveConfiguration() {
         return prhAppConfig.getDmaapPublisherConfiguration();
     }
@@ -71,13 +71,7 @@ public class DmaapPublisherTaskImpl extends DmaapPublisherTask {
     @Override
     DMaaPProducerReactiveHttpClient resolveClient() {
         return Optional.ofNullable(dMaaPProducerReactiveHttpClient)
-            .orElseGet(() -> {
-                DmaapPublisherConfiguration dmaapPublisherConfiguration = resolveConfiguration();
-                return new DMaaPProducerReactiveHttpClient(dmaapPublisherConfiguration).createDMaaPWebClient(
-                    new DMaaPReactiveWebClient.WebClientBuilder()
-                        .dmaapContentType(dmaapPublisherConfiguration.dmaapContentType())
-                        .dmaapUserName(dmaapPublisherConfiguration.dmaapUserName())
-                        .dmaapUserPassword(dmaapPublisherConfiguration.dmaapUserPassword()).build());
-            });
+            .orElseGet(() -> new DMaaPProducerReactiveHttpClient(resolveConfiguration())
+                .createDMaaPWebClient(buildWebClient()));
     }
 }
\ No newline at end of file
diff --git a/prh-dmaap-client/src/test/java/org/onap/dcaegen2/services/prh/service/DMaaPReactiveWebClientTest.java b/prh-dmaap-client/src/test/java/org/onap/dcaegen2/services/prh/service/DMaaPReactiveWebClientTest.java
new file mode 100644 (file)
index 0000000..fad1869
--- /dev/null
@@ -0,0 +1,49 @@
+/*
+ * ============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.service;
+
+import org.junit.jupiter.api.Assertions;
+import org.junit.jupiter.api.Test;
+import org.springframework.web.reactive.function.client.WebClient;
+
+/**
+ * @author <a href="mailto:przemyslaw.wasala@nokia.com">Przemysław Wąsala</a> on 7/5/18
+ */
+public class DMaaPReactiveWebClientTest {
+
+    @Test
+    public void builder_shouldBuildDMaaPReactiveWebClient() {
+        //given
+        WebClient dMaaPReactiveWebClient;
+        String dMaaPContentType = "*/*";
+        String dMaaPUserName = "DMaaP";
+        String dMaaPUserPassword = "DMaaP";
+
+        //when
+        dMaaPReactiveWebClient = new DMaaPReactiveWebClient.WebClientBuilder()
+            .dmaapContentType(dMaaPContentType)
+            .dmaapUserName(dMaaPUserName)
+            .dmaapUserPassword(dMaaPUserPassword).build();
+
+        //then
+        Assertions.assertNotNull(dMaaPReactiveWebClient);
+
+    }
+}
\ No newline at end of file
index c0b0c40..f1fb70b 100644 (file)
@@ -55,7 +55,6 @@ public class DMaaPProducerReactiveHttpClientTest {
         DmaapPublisherConfiguration.class);
     private static final Integer RESPONSE_SUCCESS = 200;
     private static ConsumerDmaapModel consumerDmaapModel = new ConsumerDmaapModelForUnitTest();
-    private static Mono<Integer> expectedResult = Mono.empty();
     private static WebClient webClient = mock(WebClient.class);
     private static RequestBodyUriSpec requestBodyUriSpec;
     private static ResponseSpec responseSpec;
@@ -85,7 +84,7 @@ public class DMaaPProducerReactiveHttpClientTest {
     @Test
     public void getHttpResponse_Success() {
         //given
-        expectedResult = Mono.just(RESPONSE_SUCCESS);
+        Mono<Integer> expectedResult = Mono.just(RESPONSE_SUCCESS);
 
         //when
         mockWebClientDependantObject();