DmaaP Publisher and consumer interfaces ssl setup 52/71852/1
authorpkaras <piotr.karas@nokia.com>
Mon, 5 Nov 2018 15:04:54 +0000 (16:04 +0100)
committerpkaras <piotr.karas@nokia.com>
Mon, 5 Nov 2018 15:10:17 +0000 (16:10 +0100)
Change-Id: I971d0fb222c6e8e15de4fc4a4d9eeb4ef3a99f44
Issue-ID: DCAEGEN2-944
Signed-off-by: piotr.karas <piotr.karas@nokia.com>
16 files changed:
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-app-server/src/test/java/org/onap/dcaegen2/services/prh/tasks/DmaapConsumerTaskImplTest.java
prh-app-server/src/test/java/org/onap/dcaegen2/services/prh/tasks/DmaapPublisherTaskImplTest.java
prh-dmaap-client/src/main/java/org/onap/dcaegen2/services/prh/service/consumer/ConsumerReactiveHttpClientFactory.java [new file with mode: 0644]
prh-dmaap-client/src/main/java/org/onap/dcaegen2/services/prh/service/consumer/DMaaPConsumerReactiveHttpClient.java
prh-dmaap-client/src/main/java/org/onap/dcaegen2/services/prh/service/consumer/DMaaPReactiveWebClient.java [moved from prh-dmaap-client/src/main/java/org/onap/dcaegen2/services/prh/service/DMaaPReactiveWebClient.java with 98% similarity]
prh-dmaap-client/src/main/java/org/onap/dcaegen2/services/prh/service/producer/DMaaPPublisherReactiveHttpClient.java
prh-dmaap-client/src/main/java/org/onap/dcaegen2/services/prh/service/producer/PublisherReactiveHttpClientFactory.java [new file with mode: 0644]
prh-dmaap-client/src/test/java/org/onap/dcaegen2/services/prh/service/consumer/ConsumerReactiveHttpClientFactoryTest.java [new file with mode: 0644]
prh-dmaap-client/src/test/java/org/onap/dcaegen2/services/prh/service/consumer/DMaaPConsumerReactiveHttpClientTest.java
prh-dmaap-client/src/test/java/org/onap/dcaegen2/services/prh/service/consumer/DMaaPReactiveWebClientTest.java [moved from prh-dmaap-client/src/test/java/org/onap/dcaegen2/services/prh/service/DMaaPReactiveWebClientTest.java with 97% similarity]
prh-dmaap-client/src/test/java/org/onap/dcaegen2/services/prh/service/producer/DMaaPPublisherReactiveHttpClientTest.java
prh-dmaap-client/src/test/java/org/onap/dcaegen2/services/prh/service/producer/PublisherReactiveHttpClientFactoryTest.java [new file with mode: 0644]

index 2f947d4..58b29d2 100644 (file)
@@ -23,7 +23,6 @@ package org.onap.dcaegen2.services.prh.tasks;
 import org.onap.dcaegen2.services.prh.model.ConsumerDmaapModel;
 import org.onap.dcaegen2.services.prh.service.consumer.DMaaPConsumerReactiveHttpClient;
 import reactor.core.publisher.Flux;
-import reactor.core.publisher.Mono;
 
 /**
  * @author <a href="mailto:przemyslaw.wasala@nokia.com">Przemysław Wąsala</a> on 4/13/18
@@ -34,7 +33,5 @@ interface DmaapConsumerTask {
 
     Flux<ConsumerDmaapModel> execute(String object);
 
-    Flux<ConsumerDmaapModel> consume(Mono<String> message);
-
     DMaaPConsumerReactiveHttpClient resolveClient();
 }
index c4d9c44..a52163b 100644 (file)
@@ -22,15 +22,15 @@ package org.onap.dcaegen2.services.prh.tasks;
 
 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.ConsumerReactiveHttpClientFactory;
 import org.onap.dcaegen2.services.prh.service.consumer.DMaaPConsumerReactiveHttpClient;
+import org.onap.dcaegen2.services.prh.service.consumer.DMaaPReactiveWebClient;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 import reactor.core.publisher.Flux;
-import reactor.core.publisher.Mono;
 
 /**
  * @author <a href="mailto:przemyslaw.wasala@nokia.com">Przemysław Wąsala</a> on 3/23/18
@@ -41,18 +41,20 @@ public class DmaapConsumerTaskImpl implements DmaapConsumerTask {
     private static final Logger LOGGER = LoggerFactory.getLogger(DmaapConsumerTaskImpl.class);
     private final Config config;
     private final DmaapConsumerJsonParser dmaapConsumerJsonParser;
-    private final DMaaPReactiveWebClient dmaapReactiveWebClient;
+    private final ConsumerReactiveHttpClientFactory httpClientFactory;
 
     @Autowired
     public DmaapConsumerTaskImpl(Config config) {
-        this(config, new DmaapConsumerJsonParser(), new DMaaPReactiveWebClient());
+        this(config, new DmaapConsumerJsonParser(),
+                new ConsumerReactiveHttpClientFactory(new DMaaPReactiveWebClient()));
     }
 
-    DmaapConsumerTaskImpl(Config prhAppConfig, DmaapConsumerJsonParser dmaapConsumerJsonParser,
-                          DMaaPReactiveWebClient dmaapReactiveWebClient) {
+    DmaapConsumerTaskImpl(Config prhAppConfig,
+                          DmaapConsumerJsonParser dmaapConsumerJsonParser,
+                          ConsumerReactiveHttpClientFactory httpClientFactory) {
         this.config = prhAppConfig;
         this.dmaapConsumerJsonParser = dmaapConsumerJsonParser;
-        this.dmaapReactiveWebClient = dmaapReactiveWebClient;
+        this.httpClientFactory = httpClientFactory;
     }
 
     @Override
@@ -64,17 +66,11 @@ public class DmaapConsumerTaskImpl implements DmaapConsumerTask {
     public Flux<ConsumerDmaapModel> execute(String object) {
         DMaaPConsumerReactiveHttpClient dmaaPConsumerReactiveHttpClient = resolveClient();
         LOGGER.debug("Method called with arg {}", object);
-        return consume(dmaaPConsumerReactiveHttpClient.getDMaaPConsumerResponse());
-    }
-
-    @Override
-    public Flux<ConsumerDmaapModel> consume(Mono<String> message) {
-        return dmaapConsumerJsonParser.getJsonObject(message);
+        return dmaapConsumerJsonParser.getJsonObject(dmaaPConsumerReactiveHttpClient.getDMaaPConsumerResponse());
     }
 
     @Override
     public DMaaPConsumerReactiveHttpClient resolveClient() {
-        return new DMaaPConsumerReactiveHttpClient(
-                config.getDmaapConsumerConfiguration()).createDMaaPWebClient(dmaapReactiveWebClient.build());
+        return httpClientFactory.create(config.getDmaapConsumerConfiguration());
     }
 }
index dc0a448..3f59815 100644 (file)
@@ -33,7 +33,5 @@ interface DmaapPublisherTask {
 
     Mono<ResponseEntity<String>> execute(ConsumerDmaapModel consumerDmaapModel) throws PrhTaskException;
 
-    Mono<ResponseEntity<String>> publish(ConsumerDmaapModel consumerDmaapModel) throws PrhTaskException;
-
     DMaaPPublisherReactiveHttpClient resolveClient();
 }
index fdc5e62..76c1bb5 100644 (file)
@@ -24,12 +24,12 @@ 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.producer.DMaaPPublisherReactiveHttpClient;
+import org.onap.dcaegen2.services.prh.service.producer.PublisherReactiveHttpClientFactory;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.ResponseEntity;
 import org.springframework.stereotype.Component;
-import org.springframework.web.client.RestTemplate;
 import reactor.core.publisher.Mono;
 
 /**
@@ -40,11 +40,16 @@ public class DmaapPublisherTaskImpl implements DmaapPublisherTask {
 
     private static final Logger LOGGER = LoggerFactory.getLogger(DmaapPublisherTaskImpl.class);
     private final Config config;
-    private DMaaPPublisherReactiveHttpClient dmaapPublisherReactiveHttpClient;
+    private final PublisherReactiveHttpClientFactory httpClientFactory;
 
     @Autowired
     public DmaapPublisherTaskImpl(Config config) {
+        this(config, new PublisherReactiveHttpClientFactory());
+    }
+
+    DmaapPublisherTaskImpl(Config config, PublisherReactiveHttpClientFactory httpClientFactory) {
         this.config = config;
+        this.httpClientFactory = httpClientFactory;
     }
 
     @Override
@@ -52,19 +57,13 @@ public class DmaapPublisherTaskImpl implements DmaapPublisherTask {
         if (consumerDmaapModel == null) {
             throw new DmaapNotFoundException("Invoked null object to DMaaP task");
         }
-        dmaapPublisherReactiveHttpClient = resolveClient();
+        DMaaPPublisherReactiveHttpClient dmaapPublisherReactiveHttpClient = resolveClient();
         LOGGER.info("Method called with arg {}", consumerDmaapModel);
-        return publish(consumerDmaapModel);
-    }
-
-    @Override
-    public Mono<ResponseEntity<String>> publish(ConsumerDmaapModel consumerDmaapModel) {
         return dmaapPublisherReactiveHttpClient.getDMaaPProducerResponse(consumerDmaapModel);
     }
 
     @Override
     public DMaaPPublisherReactiveHttpClient resolveClient() {
-        return new DMaaPPublisherReactiveHttpClient(config.getDmaapPublisherConfiguration())
-                .createDMaaPWebClient(new RestTemplate());
+        return httpClientFactory.create(config.getDmaapPublisherConfiguration());
     }
 }
\ No newline at end of file
index fe9f6f7..1a85891 100644 (file)
@@ -36,8 +36,8 @@ import org.onap.dcaegen2.services.prh.config.DmaapConsumerConfiguration;
 import org.onap.dcaegen2.services.prh.configuration.AppConfig;
 import org.onap.dcaegen2.services.prh.model.ConsumerDmaapModel;
 import org.onap.dcaegen2.services.prh.model.ImmutableConsumerDmaapModel;
-import org.onap.dcaegen2.services.prh.service.DMaaPReactiveWebClient;
 import org.onap.dcaegen2.services.prh.service.DmaapConsumerJsonParser;
+import org.onap.dcaegen2.services.prh.service.consumer.ConsumerReactiveHttpClientFactory;
 import org.onap.dcaegen2.services.prh.service.consumer.DMaaPConsumerReactiveHttpClient;
 import reactor.core.publisher.Flux;
 import reactor.core.publisher.Mono;
@@ -120,9 +120,8 @@ class DmaapConsumerTaskImplTest {
         dMaaPConsumerReactiveHttpClient = mock(DMaaPConsumerReactiveHttpClient.class);
         when(dMaaPConsumerReactiveHttpClient.getDMaaPConsumerResponse()).thenReturn(Mono.just(message.orElse("")));
         when(appConfig.getDmaapConsumerConfiguration()).thenReturn(dmaapConsumerConfiguration);
-        DMaaPReactiveWebClient dmaapReactiveWebClient = mock(DMaaPReactiveWebClient.class);
-        dmaapConsumerTask =
-                spy(new DmaapConsumerTaskImpl(appConfig, new DmaapConsumerJsonParser(), dmaapReactiveWebClient));
-        doReturn(dMaaPConsumerReactiveHttpClient).when(dmaapConsumerTask).resolveClient();
+        ConsumerReactiveHttpClientFactory httpClientFactory = mock(ConsumerReactiveHttpClientFactory.class);
+        doReturn(dMaaPConsumerReactiveHttpClient).when(httpClientFactory).create(dmaapConsumerConfiguration);
+        dmaapConsumerTask = new DmaapConsumerTaskImpl(appConfig, new DmaapConsumerJsonParser(), httpClientFactory);
     }
 }
\ No newline at end of file
index e9eed69..5bdcba5 100644 (file)
@@ -41,6 +41,7 @@ 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.producer.DMaaPPublisherReactiveHttpClient;
+import org.onap.dcaegen2.services.prh.service.producer.PublisherReactiveHttpClientFactory;
 import org.springframework.http.HttpStatus;
 import org.springframework.http.ResponseEntity;
 import reactor.core.publisher.Mono;
@@ -119,8 +120,9 @@ class DmaapPublisherTaskImplTest {
         dMaaPPublisherReactiveHttpClient = mock(DMaaPPublisherReactiveHttpClient.class);
         when(dMaaPPublisherReactiveHttpClient.getDMaaPProducerResponse(any()))
             .thenReturn(Mono.just(responseEntity));
-        dmaapPublisherTask = spy(new DmaapPublisherTaskImpl(appConfig));
-        doReturn(dMaaPPublisherReactiveHttpClient).when(dmaapPublisherTask).resolveClient();
+        PublisherReactiveHttpClientFactory httpClientFactory = mock(PublisherReactiveHttpClientFactory.class);
+        doReturn(dMaaPPublisherReactiveHttpClient).when(httpClientFactory).create(dmaapPublisherConfiguration);
+        dmaapPublisherTask = new DmaapPublisherTaskImpl(appConfig, httpClientFactory);
         return responseEntity;
     }
 }
\ No newline at end of file
diff --git a/prh-dmaap-client/src/main/java/org/onap/dcaegen2/services/prh/service/consumer/ConsumerReactiveHttpClientFactory.java b/prh-dmaap-client/src/main/java/org/onap/dcaegen2/services/prh/service/consumer/ConsumerReactiveHttpClientFactory.java
new file mode 100644 (file)
index 0000000..951e0b0
--- /dev/null
@@ -0,0 +1,37 @@
+/*
+ * ============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.consumer;
+
+import org.onap.dcaegen2.services.prh.config.DmaapConsumerConfiguration;
+
+public class ConsumerReactiveHttpClientFactory {
+
+    private final DMaaPReactiveWebClient reactiveWebClient;
+
+    public ConsumerReactiveHttpClientFactory(DMaaPReactiveWebClient reactiveWebClient) {
+        this.reactiveWebClient = reactiveWebClient;
+    }
+
+    public DMaaPConsumerReactiveHttpClient create(DmaapConsumerConfiguration consumerConfiguration) {
+        return new DMaaPConsumerReactiveHttpClient(consumerConfiguration, reactiveWebClient.build());
+    }
+
+}
index 02c6ba9..bed3b0a 100644 (file)
@@ -47,14 +47,14 @@ public class DMaaPConsumerReactiveHttpClient {
     private final String consumerGroup;
     private final String consumerId;
     private final String contentType;
-    private WebClient webClient;
+    private final WebClient webClient;
 
     /**
      * Constructor of DMaaPConsumerReactiveHttpClient.
      *
      * @param consumerConfiguration - DMaaP consumer configuration object
      */
-    public DMaaPConsumerReactiveHttpClient(DmaapConsumerConfiguration consumerConfiguration) {
+    DMaaPConsumerReactiveHttpClient(DmaapConsumerConfiguration consumerConfiguration, WebClient webClient) {
         this.dmaapHostName = consumerConfiguration.dmaapHostName();
         this.dmaapProtocol = consumerConfiguration.dmaapProtocol();
         this.dmaapPortNumber = consumerConfiguration.dmaapPortNumber();
@@ -62,6 +62,7 @@ public class DMaaPConsumerReactiveHttpClient {
         this.consumerGroup = consumerConfiguration.consumerGroup();
         this.consumerId = consumerConfiguration.consumerId();
         this.contentType = consumerConfiguration.dmaapContentType();
+        this.webClient = webClient;
     }
 
     /**
@@ -95,10 +96,6 @@ public class DMaaPConsumerReactiveHttpClient {
         return dmaapTopicName + "/" + consumerGroup + "/" + consumerId;
     }
 
-    public DMaaPConsumerReactiveHttpClient createDMaaPWebClient(WebClient webClient) {
-        this.webClient = webClient;
-        return this;
-    }
 
     URI getUri() {
         return new DefaultUriBuilderFactory().builder().scheme(dmaapProtocol).host(dmaapHostName).port(dmaapPortNumber)
@@ -18,7 +18,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.onap.dcaegen2.services.prh.service;
+package org.onap.dcaegen2.services.prh.service.consumer;
 
 import static org.onap.dcaegen2.services.prh.model.logging.MdcVariables.RESPONSE_CODE;
 import static org.onap.dcaegen2.services.prh.model.logging.MdcVariables.SERVICE_NAME;
index 6919487..d4687c5 100644 (file)
@@ -50,20 +50,21 @@ public class DMaaPPublisherReactiveHttpClient {
     private final String dmaapProtocol;
     private final String dmaapTopicName;
     private final String dmaapContentType;
-
-    private RestTemplate restTemplate;
+    private final RestTemplate restTemplate;
 
     /**
      * Constructor DMaaPPublisherReactiveHttpClient.
      *
      * @param dmaapPublisherConfiguration - DMaaP producer configuration object
      */
-    public DMaaPPublisherReactiveHttpClient(DmaapPublisherConfiguration dmaapPublisherConfiguration) {
+    DMaaPPublisherReactiveHttpClient(DmaapPublisherConfiguration dmaapPublisherConfiguration,
+                                     RestTemplate restTemplate) {
         this.dmaapHostName = dmaapPublisherConfiguration.dmaapHostName();
         this.dmaapProtocol = dmaapPublisherConfiguration.dmaapProtocol();
         this.dmaapPortNumber = dmaapPublisherConfiguration.dmaapPortNumber();
         this.dmaapTopicName = dmaapPublisherConfiguration.dmaapTopicName();
         this.dmaapContentType = dmaapPublisherConfiguration.dmaapContentType();
+        this.restTemplate = restTemplate;
     }
 
     /**
@@ -90,11 +91,6 @@ public class DMaaPPublisherReactiveHttpClient {
 
     }
 
-    public DMaaPPublisherReactiveHttpClient createDMaaPWebClient(RestTemplate restTemplate) {
-        this.restTemplate = restTemplate;
-        return this;
-    }
-
     URI getUri() {
         return new DefaultUriBuilderFactory().builder().scheme(dmaapProtocol).host(dmaapHostName).port(dmaapPortNumber)
             .path(dmaapTopicName).build();
diff --git a/prh-dmaap-client/src/main/java/org/onap/dcaegen2/services/prh/service/producer/PublisherReactiveHttpClientFactory.java b/prh-dmaap-client/src/main/java/org/onap/dcaegen2/services/prh/service/producer/PublisherReactiveHttpClientFactory.java
new file mode 100644 (file)
index 0000000..0fc8f16
--- /dev/null
@@ -0,0 +1,32 @@
+/*
+ * ============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.producer;
+
+import org.onap.dcaegen2.services.prh.config.DmaapPublisherConfiguration;
+import org.springframework.web.client.RestTemplate;
+
+public class PublisherReactiveHttpClientFactory {
+
+    public DMaaPPublisherReactiveHttpClient create(DmaapPublisherConfiguration publisherConfiguration) {
+        return new DMaaPPublisherReactiveHttpClient(publisherConfiguration, new RestTemplate());
+    }
+
+}
diff --git a/prh-dmaap-client/src/test/java/org/onap/dcaegen2/services/prh/service/consumer/ConsumerReactiveHttpClientFactoryTest.java b/prh-dmaap-client/src/test/java/org/onap/dcaegen2/services/prh/service/consumer/ConsumerReactiveHttpClientFactoryTest.java
new file mode 100644 (file)
index 0000000..6e86443
--- /dev/null
@@ -0,0 +1,42 @@
+/*
+ * ============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.consumer;
+
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.verify;
+
+import org.junit.jupiter.api.Assertions;
+import org.junit.jupiter.api.Test;
+import org.onap.dcaegen2.services.prh.config.DmaapConsumerConfiguration;
+
+class ConsumerReactiveHttpClientFactoryTest {
+
+    private DmaapConsumerConfiguration dmaapConsumerConfiguration = mock(DmaapConsumerConfiguration.class);
+    private DMaaPReactiveWebClient reactiveWebClient = mock(DMaaPReactiveWebClient.class);
+    private ConsumerReactiveHttpClientFactory httpClientFactory =
+            new ConsumerReactiveHttpClientFactory(reactiveWebClient);
+
+    @Test
+    void create_shouldReturnNotNullFactoryInstance() {
+        Assertions.assertNotNull(httpClientFactory.create(dmaapConsumerConfiguration));
+        verify(reactiveWebClient).build();
+    }
+}
\ No newline at end of file
index c8ffd12..595fd6d 100644 (file)
@@ -66,12 +66,12 @@ class DMaaPConsumerReactiveHttpClientTest {
         when(consumerConfigurationMock.consumerGroup()).thenReturn("OpenDCAE-c12");
         when(consumerConfigurationMock.consumerId()).thenReturn("c12");
 
-        dmaapConsumerReactiveHttpClient = new DMaaPConsumerReactiveHttpClient(consumerConfigurationMock);
         webClient = spy(WebClient.builder()
             .defaultHeader(HttpHeaders.CONTENT_TYPE, consumerConfigurationMock.dmaapContentType())
             .filter(basicAuthentication(consumerConfigurationMock.dmaapUserName(),
                 consumerConfigurationMock.dmaapUserPassword()))
             .build());
+        dmaapConsumerReactiveHttpClient = new DMaaPConsumerReactiveHttpClient(consumerConfigurationMock, webClient);
         requestHeadersSpec = mock(RequestHeadersUriSpec.class);
         responseSpec = mock(ResponseSpec.class);
     }
@@ -85,7 +85,6 @@ class DMaaPConsumerReactiveHttpClientTest {
         //when
         mockDependantObjects();
         doReturn(expectedResult).when(responseSpec).bodyToMono(String.class);
-        dmaapConsumerReactiveHttpClient.createDMaaPWebClient(webClient);
         Mono<String> response = dmaapConsumerReactiveHttpClient.getDMaaPConsumerResponse();
 
         //then
index db3d515..ce2f7f3 100644 (file)
@@ -39,8 +39,6 @@ import org.springframework.http.ResponseEntity;
 import org.springframework.web.client.RestTemplate;
 import reactor.test.StepVerifier;
 
-
-
 /**
  * @author <a href="mailto:przemyslaw.wasala@nokia.com">Przemysław Wąsala</a> on 7/4/18
  */
@@ -48,10 +46,10 @@ import reactor.test.StepVerifier;
 class DMaaPPublisherReactiveHttpClientTest {
 
     private DMaaPPublisherReactiveHttpClient dmaapPublisherReactiveHttpClient;
-
     private DmaapPublisherConfiguration dmaapPublisherConfigurationMock = mock(
-        DmaapPublisherConfiguration.class);
+            DmaapPublisherConfiguration.class);
     private ConsumerDmaapModel consumerDmaapModel = new ConsumerDmaapModelForUnitTest();
+    private RestTemplate restTemplate = mock(RestTemplate.class);
 
 
     @BeforeEach
@@ -63,7 +61,8 @@ class DMaaPPublisherReactiveHttpClientTest {
         when(dmaapPublisherConfigurationMock.dmaapUserPassword()).thenReturn("PRH");
         when(dmaapPublisherConfigurationMock.dmaapContentType()).thenReturn("application/json");
         when(dmaapPublisherConfigurationMock.dmaapTopicName()).thenReturn("unauthenticated.PNF_READY");
-        dmaapPublisherReactiveHttpClient = new DMaaPPublisherReactiveHttpClient(dmaapPublisherConfigurationMock);
+        dmaapPublisherReactiveHttpClient =
+                new DMaaPPublisherReactiveHttpClient(dmaapPublisherConfigurationMock, restTemplate);
 
     }
 
@@ -72,21 +71,19 @@ class DMaaPPublisherReactiveHttpClientTest {
         //given
         int responseSuccess = 200;
         ResponseEntity<String> mockedResponseEntity = mock(ResponseEntity.class);
-        RestTemplate restTemplate = mock(RestTemplate.class);
         //when
         when(mockedResponseEntity.getStatusCode()).thenReturn(HttpStatus.valueOf(responseSuccess));
         doReturn(mockedResponseEntity).when(restTemplate)
-            .exchange(any(URI.class), any(HttpMethod.class), any(HttpEntity.class), (Class<Object>) any());
-        dmaapPublisherReactiveHttpClient.createDMaaPWebClient(restTemplate);
+                .exchange(any(URI.class), any(HttpMethod.class), any(HttpEntity.class), (Class<Object>) any());
 
         //then
         StepVerifier.create(dmaapPublisherReactiveHttpClient.getDMaaPProducerResponse(consumerDmaapModel))
-            .expectSubscription().expectNext(mockedResponseEntity).verifyComplete();
+                .expectSubscription().expectNext(mockedResponseEntity).verifyComplete();
     }
 
     @Test
     void getAppropriateUri_whenPassingCorrectedPathForPnf() {
         Assertions.assertEquals(dmaapPublisherReactiveHttpClient.getUri(),
-            URI.create("https://54.45.33.2:1234/unauthenticated.PNF_READY"));
+                URI.create("https://54.45.33.2:1234/unauthenticated.PNF_READY"));
     }
 }
\ No newline at end of file
diff --git a/prh-dmaap-client/src/test/java/org/onap/dcaegen2/services/prh/service/producer/PublisherReactiveHttpClientFactoryTest.java b/prh-dmaap-client/src/test/java/org/onap/dcaegen2/services/prh/service/producer/PublisherReactiveHttpClientFactoryTest.java
new file mode 100644 (file)
index 0000000..3acfde9
--- /dev/null
@@ -0,0 +1,39 @@
+/*
+ * ============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.producer;
+
+import static org.mockito.Mockito.mock;
+
+import org.junit.jupiter.api.Assertions;
+import org.junit.jupiter.api.Test;
+import org.onap.dcaegen2.services.prh.config.DmaapPublisherConfiguration;
+
+
+class PublisherReactiveHttpClientFactoryTest {
+
+    private DmaapPublisherConfiguration dmaapPublisherConfiguration = mock(DmaapPublisherConfiguration.class);
+    private PublisherReactiveHttpClientFactory httpClientFactory = new PublisherReactiveHttpClientFactory();
+
+    @Test
+    void create_shouldReturnNotNullFactoryInstance() {
+        Assertions.assertNotNull(httpClientFactory.create(dmaapPublisherConfiguration));
+    }
+}
\ No newline at end of file