aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorwasala <przemyslaw.wasala@nokia.com>2018-06-26 19:29:43 +0200
committerwasala <przemyslaw.wasala@nokia.com>2018-08-07 08:32:28 +0200
commitc8c9a242f7a1f8454e2cf94b0442128533569dc5 (patch)
tree784673c75693f6f77b624e5c83c12e24b73646ec
parent8b1502fb0f1af5d00ec26e712e57b792fbd16bd8 (diff)
DmaapConsumerReactive fixed tests
Change-Id: I888ef94a084f32a18c77c12a18fb6636a4f33649 Issue-ID: DCAEGEN2-557 Signed-off-by: wasala <przemyslaw.wasala@nokia.com>
-rw-r--r--prh-app-server/src/main/java/org/onap/dcaegen2/services/prh/service/DmaapConsumerJsonParser.java21
-rw-r--r--prh-app-server/src/main/java/org/onap/dcaegen2/services/prh/tasks/DmaapConsumerTask.java5
-rw-r--r--prh-app-server/src/main/java/org/onap/dcaegen2/services/prh/tasks/DmaapConsumerTaskImpl.java9
-rw-r--r--prh-app-server/src/main/java/org/onap/dcaegen2/services/prh/tasks/ScheduledTasks.java7
-rw-r--r--prh-app-server/src/main/java/org/onap/dcaegen2/services/prh/tasks/Task.java42
-rw-r--r--prh-app-server/src/test/java/org/onap/dcaegen2/services/prh/IT/ScheduledXmlContextITest.java166
-rw-r--r--prh-app-server/src/test/java/org/onap/dcaegen2/services/prh/service/DmaapConsumerJsonParserTest.java21
-rw-r--r--prh-app-server/src/test/java/org/onap/dcaegen2/services/prh/tasks/DmaapConsumerTaskImplTest.java39
-rw-r--r--prh-app-server/src/test/java/org/onap/dcaegen2/services/prh/tasks/DmaapConsumerTaskSpy.java11
-rw-r--r--prh-dmaap-client/src/main/java/org/onap/dcaegen2/services/prh/service/consumer/DmaapConsumerReactiveHttpClient.java9
-rw-r--r--prh-dmaap-client/src/main/java/org/onap/dcaegen2/services/prh/service/consumer/ExtendedDmaapConsumerHttpClientImpl.java130
-rw-r--r--prh-dmaap-client/src/test/java/org/onap/dcaegen2/services/prh/service/consumer/ExtendedDmaapConsumerHttpClientImplTest.java192
12 files changed, 284 insertions, 368 deletions
diff --git a/prh-app-server/src/main/java/org/onap/dcaegen2/services/prh/service/DmaapConsumerJsonParser.java b/prh-app-server/src/main/java/org/onap/dcaegen2/services/prh/service/DmaapConsumerJsonParser.java
index 20ec78fc..22acf547 100644
--- a/prh-app-server/src/main/java/org/onap/dcaegen2/services/prh/service/DmaapConsumerJsonParser.java
+++ b/prh-app-server/src/main/java/org/onap/dcaegen2/services/prh/service/DmaapConsumerJsonParser.java
@@ -30,7 +30,6 @@ import org.onap.dcaegen2.services.prh.model.ConsumerDmaapModel;
import org.onap.dcaegen2.services.prh.model.ImmutableConsumerDmaapModel;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import org.springframework.util.StringUtils;
import reactor.core.publisher.Mono;
/**
@@ -47,20 +46,21 @@ public class DmaapConsumerJsonParser {
private static final String PNF_SERIAL_NUMBER = "pnfSerialNumber";
- public Mono<ConsumerDmaapModel> getJsonObject(Mono<String> monoMessage) {
+ public Mono<Optional<ConsumerDmaapModel>> getJsonObject(Mono<Optional<String>> monoMessage) {
return monoMessage.flatMap(message ->
{
- if (!StringUtils.isEmpty(message)) {
- JsonElement jsonElement = new JsonParser().parse(message);
- ConsumerDmaapModel consumerDmaapModel;
+ if (message.isPresent()) {
+ JsonElement jsonElement = new JsonParser().parse(message.orElse(""));
+ Optional<ConsumerDmaapModel> consumerDmaapModel;
try {
if (jsonElement.isJsonObject()) {
- consumerDmaapModel = create(jsonElement.getAsJsonObject());
+ consumerDmaapModel = Optional.of(create(jsonElement.getAsJsonObject()));
} else {
- consumerDmaapModel = create(
- StreamSupport.stream(jsonElement.getAsJsonArray().spliterator(), false).findFirst()
- .flatMap(this::getJsonObjectFromAnArray)
- .orElseThrow(DmaapEmptyResponseException::new));
+ consumerDmaapModel = Optional
+ .of(create(
+ StreamSupport.stream(jsonElement.getAsJsonArray().spliterator(), false).findFirst()
+ .flatMap(this::getJsonObjectFromAnArray)
+ .orElseThrow(DmaapEmptyResponseException::new)));
}
logger.info("Parsed model from DmaaP after getting it: {}", consumerDmaapModel);
return Mono.just(consumerDmaapModel);
@@ -112,4 +112,5 @@ public class DmaapConsumerJsonParser {
private boolean containsHeader(JsonObject jsonObject) {
return jsonObject.has(EVENT) && jsonObject.getAsJsonObject(EVENT).has(OTHER_FIELDS);
}
+
}
diff --git a/prh-app-server/src/main/java/org/onap/dcaegen2/services/prh/tasks/DmaapConsumerTask.java b/prh-app-server/src/main/java/org/onap/dcaegen2/services/prh/tasks/DmaapConsumerTask.java
index d238b34c..753d1f9c 100644
--- a/prh-app-server/src/main/java/org/onap/dcaegen2/services/prh/tasks/DmaapConsumerTask.java
+++ b/prh-app-server/src/main/java/org/onap/dcaegen2/services/prh/tasks/DmaapConsumerTask.java
@@ -19,6 +19,7 @@
*/
package org.onap.dcaegen2.services.prh.tasks;
+import java.util.Optional;
import org.onap.dcaegen2.services.prh.exceptions.PrhTaskException;
import org.onap.dcaegen2.services.prh.model.ConsumerDmaapModel;
import org.onap.dcaegen2.services.prh.service.consumer.DmaapConsumerReactiveHttpClient;
@@ -29,11 +30,11 @@ import reactor.core.publisher.Mono;
*/
abstract class DmaapConsumerTask {
- abstract Mono<ConsumerDmaapModel> consume(Mono<String> message) throws PrhTaskException;
+ abstract Mono<Optional<ConsumerDmaapModel>> consume(Mono<Optional<String>> message) throws PrhTaskException;
abstract DmaapConsumerReactiveHttpClient resolveClient();
abstract void initConfigs();
- protected abstract Mono<ConsumerDmaapModel> execute(String object) throws PrhTaskException;
+ protected abstract Mono<Optional<ConsumerDmaapModel>> execute(String object) throws PrhTaskException;
}
diff --git a/prh-app-server/src/main/java/org/onap/dcaegen2/services/prh/tasks/DmaapConsumerTaskImpl.java b/prh-app-server/src/main/java/org/onap/dcaegen2/services/prh/tasks/DmaapConsumerTaskImpl.java
index 564a7a41..3181c069 100644
--- a/prh-app-server/src/main/java/org/onap/dcaegen2/services/prh/tasks/DmaapConsumerTaskImpl.java
+++ b/prh-app-server/src/main/java/org/onap/dcaegen2/services/prh/tasks/DmaapConsumerTaskImpl.java
@@ -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.exceptions.DmaapEmptyResponseException;
-import org.onap.dcaegen2.services.prh.exceptions.DmaapNotFoundException;
import org.onap.dcaegen2.services.prh.exceptions.PrhTaskException;
import org.onap.dcaegen2.services.prh.model.ConsumerDmaapModel;
import org.onap.dcaegen2.services.prh.service.DmaapConsumerJsonParser;
@@ -41,6 +40,7 @@ import reactor.core.publisher.Mono;
@Component
public class DmaapConsumerTaskImpl extends DmaapConsumerTask {
+
private final Logger logger = LoggerFactory.getLogger(this.getClass());
private final Config prhAppConfig;
private DmaapConsumerJsonParser dmaapConsumerJsonParser;
@@ -59,18 +59,17 @@ public class DmaapConsumerTaskImpl extends DmaapConsumerTask {
@Override
- Mono<ConsumerDmaapModel> consume(Mono<String> message) {
+ Mono<Optional<ConsumerDmaapModel>> consume(Mono<Optional<String>> message) throws PrhTaskException {
logger.info("Consumed model from DmaaP: {}", message);
return dmaapConsumerJsonParser.getJsonObject(message);
}
-
@Override
- public Mono<ConsumerDmaapModel> execute(String object) {
+ public Mono<Optional<ConsumerDmaapModel>> execute(String object) throws PrhTaskException {
dmaapConsumerReactiveHttpClient = resolveClient();
// dmaapConsumerReactiveHttpClient.initWebClient();
logger.trace("Method called with arg {}", object);
- return consume((dmaapConsumerReactiveHttpClient.getDmaaPConsumerResposne()));
+ return consume((dmaapConsumerReactiveHttpClient.getDmaaPConsumerResponse()));
}
@Override
diff --git a/prh-app-server/src/main/java/org/onap/dcaegen2/services/prh/tasks/ScheduledTasks.java b/prh-app-server/src/main/java/org/onap/dcaegen2/services/prh/tasks/ScheduledTasks.java
index 37b8686e..6fa986e4 100644
--- a/prh-app-server/src/main/java/org/onap/dcaegen2/services/prh/tasks/ScheduledTasks.java
+++ b/prh-app-server/src/main/java/org/onap/dcaegen2/services/prh/tasks/ScheduledTasks.java
@@ -19,6 +19,7 @@
*/
package org.onap.dcaegen2.services.prh.tasks;
+import java.util.Optional;
import java.util.concurrent.Callable;
import org.onap.dcaegen2.services.prh.exceptions.DmaapEmptyResponseException;
import org.onap.dcaegen2.services.prh.exceptions.PrhTaskException;
@@ -76,7 +77,7 @@ public class ScheduledTasks {
}
}
- private Callable<Mono<ConsumerDmaapModel>> consumeFromDMaaPMessage() {
+ private Callable<Mono<Optional<ConsumerDmaapModel>>> consumeFromDMaaPMessage() {
return () ->
{
dmaapConsumerTask.initConfigs();
@@ -84,10 +85,10 @@ public class ScheduledTasks {
};
}
- private Mono<ConsumerDmaapModel> publishToAAIConfiguration(Mono<ConsumerDmaapModel> monoDMaaPModel) {
+ private Mono<ConsumerDmaapModel> publishToAAIConfiguration(Mono<Optional<ConsumerDmaapModel>> monoDMaaPModel) {
return monoDMaaPModel.flatMap(dmaapModel -> {
try {
- return Mono.just(aaiProducerTask.execute(dmaapModel));
+ return Mono.just(aaiProducerTask.execute(dmaapModel.get()));
} catch (PrhTaskException e) {
logger.warn("Exception in A&AIProducer task ", e);
return Mono.error(e);
diff --git a/prh-app-server/src/main/java/org/onap/dcaegen2/services/prh/tasks/Task.java b/prh-app-server/src/main/java/org/onap/dcaegen2/services/prh/tasks/Task.java
new file mode 100644
index 00000000..c26028a7
--- /dev/null
+++ b/prh-app-server/src/main/java/org/onap/dcaegen2/services/prh/tasks/Task.java
@@ -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.tasks;
+
+import org.onap.dcaegen2.services.prh.exceptions.PrhTaskException;
+
+/**
+ * @author <a href="mailto:przemyslaw.wasala@nokia.com">Przemysław Wąsala</a> on 4/13/18
+ */
+
+
+public abstract class Task<R, S, C> {
+
+ Task taskProcess;
+
+ protected abstract void receiveRequest(R body) throws PrhTaskException;
+
+ protected abstract S execute(R object) throws PrhTaskException;
+
+ protected abstract C resolveConfiguration();
+
+ void setNext(Task task) {
+ this.taskProcess = task;
+ }
+}
diff --git a/prh-app-server/src/test/java/org/onap/dcaegen2/services/prh/IT/ScheduledXmlContextITest.java b/prh-app-server/src/test/java/org/onap/dcaegen2/services/prh/IT/ScheduledXmlContextITest.java
index 1d740c4a..95e00809 100644
--- a/prh-app-server/src/test/java/org/onap/dcaegen2/services/prh/IT/ScheduledXmlContextITest.java
+++ b/prh-app-server/src/test/java/org/onap/dcaegen2/services/prh/IT/ScheduledXmlContextITest.java
@@ -1,83 +1,83 @@
-///*-
-// * ============LICENSE_START=======================================================
-// * PROJECT
-// * ================================================================================
-// * 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.IT;
-//
-//import static org.mockito.Mockito.atLeast;
-//import static org.mockito.Mockito.mock;
-//import static org.mockito.Mockito.verify;
-//
-//import java.util.concurrent.Executors;
-//import java.util.concurrent.ScheduledExecutorService;
-//import java.util.concurrent.TimeUnit;
-//import org.junit.jupiter.api.Test;
-//import org.junit.jupiter.api.extension.ExtendWith;
-//import org.onap.dcaegen2.services.prh.model.ConsumerDmaapModel;
-//import org.onap.dcaegen2.services.prh.IT.junit5.mockito.MockitoExtension;
-//import org.onap.dcaegen2.services.prh.configuration.PrhAppConfig;
-//import org.onap.dcaegen2.services.prh.tasks.ScheduledTasks;
-//import org.springframework.beans.factory.annotation.Autowired;
-//import org.springframework.context.annotation.Bean;
-//import org.springframework.context.annotation.ComponentScan;
-//import org.springframework.context.annotation.Configuration;
-//import org.springframework.test.context.ContextConfiguration;
-//import org.springframework.test.context.junit.jupiter.SpringExtension;
-//import org.springframework.test.context.testng.AbstractTestNGSpringContextTests;
-//
-///**
-// * @author <a href="mailto:przemyslaw.wasala@nokia.com">Przemysław Wąsala</a> on 3/27/18
-// */
-//
-//@Configuration
-//@ComponentScan
-//@ExtendWith({MockitoExtension.class, SpringExtension.class})
-//@ContextConfiguration(locations = {"classpath:scheduled-context.xml"})
-//class ScheduledXmlContextITest extends AbstractTestNGSpringContextTests {
-//
-// private static final int WAIT_FOR_SCHEDULING = 1;
-//
-// @Autowired
-// private ScheduledTasks scheduledTask;
-//
-// @Test
-// void testScheduling() {
-// final ScheduledExecutorService executorService = Executors.newSingleThreadScheduledExecutor();
-// executorService.scheduleWithFixedDelay(this::verifyDmaapConsumerTask, 0, WAIT_FOR_SCHEDULING, TimeUnit.SECONDS);
-// }
-//
-// private void verifyDmaapConsumerTask() {
-// verify(scheduledTask, atLeast(1)).scheduleMainPrhEventTask();
-// }
-//}
-//
-//@Configuration
-//class ServiceMockProvider {
-//
-// @Bean
-// public PrhAppConfig getPrhAppConfig() {
-// return mock(PrhAppConfig.class);
-// }
-//
-// @Bean
-// public ConsumerDmaapModel getRequestDetails() {
-// return mock(ConsumerDmaapModel.class);
-// }
-//}
-//
-//
+/*-
+ * ============LICENSE_START=======================================================
+ * PROJECT
+ * ================================================================================
+ * 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.IT;
+
+import static org.mockito.Mockito.atLeast;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.verify;
+
+import java.util.concurrent.Executors;
+import java.util.concurrent.ScheduledExecutorService;
+import java.util.concurrent.TimeUnit;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.ExtendWith;
+import org.onap.dcaegen2.services.prh.model.ConsumerDmaapModel;
+import org.onap.dcaegen2.services.prh.IT.junit5.mockito.MockitoExtension;
+import org.onap.dcaegen2.services.prh.configuration.PrhAppConfig;
+import org.onap.dcaegen2.services.prh.tasks.ScheduledTasks;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.ComponentScan;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.test.context.ContextConfiguration;
+import org.springframework.test.context.junit.jupiter.SpringExtension;
+import org.springframework.test.context.testng.AbstractTestNGSpringContextTests;
+
+/**
+ * @author <a href="mailto:przemyslaw.wasala@nokia.com">Przemysław Wąsala</a> on 3/27/18
+ */
+
+@Configuration
+@ComponentScan
+@ExtendWith({MockitoExtension.class, SpringExtension.class})
+@ContextConfiguration(locations = {"classpath:scheduled-context.xml"})
+class ScheduledXmlContextITest extends AbstractTestNGSpringContextTests {
+
+ private static final int WAIT_FOR_SCHEDULING = 1;
+
+ @Autowired
+ private ScheduledTasks scheduledTask;
+
+ @Test
+ void testScheduling() {
+ final ScheduledExecutorService executorService = Executors.newSingleThreadScheduledExecutor();
+ executorService.scheduleWithFixedDelay(this::verifyDmaapConsumerTask, 0, WAIT_FOR_SCHEDULING, TimeUnit.SECONDS);
+ }
+
+ private void verifyDmaapConsumerTask() {
+ verify(scheduledTask, atLeast(1)).scheduleMainPrhEventTask();
+ }
+}
+
+@Configuration
+class ServiceMockProvider {
+
+ @Bean
+ public PrhAppConfig getPrhAppConfig() {
+ return mock(PrhAppConfig.class);
+ }
+
+ @Bean
+ public ConsumerDmaapModel getRequestDetails() {
+ return mock(ConsumerDmaapModel.class);
+ }
+}
+
+
diff --git a/prh-app-server/src/test/java/org/onap/dcaegen2/services/prh/service/DmaapConsumerJsonParserTest.java b/prh-app-server/src/test/java/org/onap/dcaegen2/services/prh/service/DmaapConsumerJsonParserTest.java
index f1dd87ef..f24ef413 100644
--- a/prh-app-server/src/test/java/org/onap/dcaegen2/services/prh/service/DmaapConsumerJsonParserTest.java
+++ b/prh-app-server/src/test/java/org/onap/dcaegen2/services/prh/service/DmaapConsumerJsonParserTest.java
@@ -28,7 +28,6 @@ import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
import org.mockito.Mockito;
import org.onap.dcaegen2.services.prh.exceptions.DmaapNotFoundException;
-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 reactor.core.publisher.Mono;
@@ -99,7 +98,8 @@ class DmaapConsumerJsonParserTest {
JsonElement jsonElement = new JsonParser().parse(parsed);
Mockito.doReturn(Optional.of(jsonElement.getAsJsonObject()))
.when(dmaapConsumerJsonParser).getJsonObjectFromAnArray(jsonElement);
- ConsumerDmaapModel consumerDmaapModel = dmaapConsumerJsonParser.getJsonObject(Mono.just(message)).block();
+ ConsumerDmaapModel consumerDmaapModel = dmaapConsumerJsonParser
+ .getJsonObject(Mono.just(Optional.of(message))).block().get();
//then
Assertions.assertNotNull(consumerDmaapModel);
Assertions.assertEquals(expectedObject, consumerDmaapModel);
@@ -138,7 +138,8 @@ class DmaapConsumerJsonParserTest {
JsonElement jsonElement = new JsonParser().parse(parsed);
Mockito.doReturn(Optional.of(jsonElement.getAsJsonObject()))
.when(dmaapConsumerJsonParser).getJsonObjectFromAnArray(jsonElement);
- ConsumerDmaapModel consumerDmaapModel = dmaapConsumerJsonParser.getJsonObject(Mono.just(message)).block();
+ ConsumerDmaapModel consumerDmaapModel = dmaapConsumerJsonParser.getJsonObject(Mono.just(Optional.of(message)))
+ .block().get();
//then
Assertions.assertNotNull(consumerDmaapModel);
Assertions.assertEquals(expectedObject, consumerDmaapModel);
@@ -175,7 +176,8 @@ class DmaapConsumerJsonParserTest {
JsonElement jsonElement = new JsonParser().parse(parsed);
Mockito.doReturn(Optional.of(jsonElement.getAsJsonObject()))
.when(dmaapConsumerJsonParser).getJsonObjectFromAnArray(jsonElement);
- ConsumerDmaapModel consumerDmaapModel = dmaapConsumerJsonParser.getJsonObject(Mono.just(message)).block();
+ ConsumerDmaapModel consumerDmaapModel = dmaapConsumerJsonParser.getJsonObject(Mono.just(Optional.of(message)))
+ .block().get();
//then
Assertions.assertNotNull(consumerDmaapModel);
Assertions.assertEquals(expectedObject, consumerDmaapModel);
@@ -205,7 +207,7 @@ class DmaapConsumerJsonParserTest {
JsonElement jsonElement = new JsonParser().parse(parsed);
Mockito.doReturn(Optional.of(jsonElement.getAsJsonObject()))
.when(dmaapConsumerJsonParser).getJsonObjectFromAnArray(jsonElement);
- StepVerifier.create(dmaapConsumerJsonParser.getJsonObject(Mono.just(message)))
+ StepVerifier.create(dmaapConsumerJsonParser.getJsonObject(Mono.just(Optional.of(message))))
.expectSubscription().expectError(DmaapNotFoundException.class);
}
@@ -221,7 +223,7 @@ class DmaapConsumerJsonParserTest {
JsonElement jsonElement = new JsonParser().parse(parsed);
Mockito.doReturn(Optional.of(jsonElement.getAsJsonObject()))
.when(dmaapConsumerJsonParser).getJsonObjectFromAnArray(jsonElement);
- StepVerifier.create(dmaapConsumerJsonParser.getJsonObject(Mono.just(incorrectMessage)))
+ StepVerifier.create(dmaapConsumerJsonParser.getJsonObject(Mono.just(Optional.of(incorrectMessage))))
.expectSubscription().expectError(DmaapNotFoundException.class);
}
@@ -240,7 +242,8 @@ class DmaapConsumerJsonParserTest {
JsonElement jsonElement = new JsonParser().parse(parsed);
Mockito.doReturn(Optional.of(jsonElement.getAsJsonObject()))
.when(dmaapConsumerJsonParser).getJsonObjectFromAnArray(jsonElement);
- StepVerifier.create(dmaapConsumerJsonParser.getJsonObject(Mono.just(jsonWithoutPnfVendorAndSerialNumber)))
+ StepVerifier
+ .create(dmaapConsumerJsonParser.getJsonObject(Mono.just(Optional.of(jsonWithoutPnfVendorAndSerialNumber))))
.expectSubscription().expectError(DmaapNotFoundException.class);
}
@@ -259,7 +262,7 @@ class DmaapConsumerJsonParserTest {
JsonElement jsonElement = new JsonParser().parse(parsed);
Mockito.doReturn(Optional.of(jsonElement.getAsJsonObject()))
.when(dmaapConsumerJsonParser).getJsonObjectFromAnArray(jsonElement);
- StepVerifier.create(dmaapConsumerJsonParser.getJsonObject(Mono.just(jsonWithoutIPInformation)))
+ StepVerifier.create(dmaapConsumerJsonParser.getJsonObject(Mono.just(Optional.of(jsonWithoutIPInformation))))
.expectSubscription().expectError(DmaapNotFoundException.class);
}
-} \ No newline at end of file
+}
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
index 18be4367..f9d7c7f1 100644
--- 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
@@ -34,26 +34,27 @@ import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.Disabled;
import org.junit.jupiter.api.Test;
-import org.junit.jupiter.api.function.Executable;
import org.mockito.Mockito;
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.DmaapEmptyResponseException;
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.DmaapConsumerJsonParser;
-import org.onap.dcaegen2.services.prh.service.consumer.ExtendedDmaapConsumerHttpClientImpl;
+import org.onap.dcaegen2.services.prh.service.consumer.DmaapConsumerReactiveHttpClient;
+import reactor.core.publisher.Mono;
+import reactor.test.StepVerifier;
/**
* @author <a href="mailto:przemyslaw.wasala@nokia.com">Przemysław Wąsala</a> on 5/17/18
*/
-@Disabled
class DmaapConsumerTaskImplTest {
private static ConsumerDmaapModel consumerDmaapModel;
private static DmaapConsumerTaskImpl dmaapConsumerTask;
- private static ExtendedDmaapConsumerHttpClientImpl extendedDmaapConsumerHttpClient;
+ private static DmaapConsumerReactiveHttpClient dmaapConsumerReactiveHttpClient;
private static AppConfig appConfig;
private static DmaapConsumerConfiguration dmaapConsumerConfiguration;
private static String message;
@@ -93,19 +94,16 @@ class DmaapConsumerTaskImplTest {
}
@Test
- public void whenPassedObjectDoesntFit_DoesNotThrowPrhTaskException() {
+ public void whenPassedObjectDoesntFit_DoesNotThrowPrhTaskException() throws PrhTaskException {
//given
prepareMocksForDmaapConsumer(Optional.empty());
- //when
- Executable executableFunction = () -> dmaapConsumerTask.execute("Sample input");
-
//then
- Assertions
- .assertThrows(PrhTaskException.class, executableFunction,
- "Throwing exception when http response code won't fit to assignment range");
- verify(extendedDmaapConsumerHttpClient, times(1)).getHttpConsumerResponse();
- verifyNoMoreInteractions(extendedDmaapConsumerHttpClient);
+ StepVerifier.create(dmaapConsumerTask.execute("Sample input")).expectSubscription()
+ .expectError(DmaapEmptyResponseException.class);
+
+ verify(dmaapConsumerReactiveHttpClient, times(1)).getDmaaPConsumerResponse();
+ verifyNoMoreInteractions(dmaapConsumerReactiveHttpClient);
}
@Test
@@ -113,13 +111,14 @@ class DmaapConsumerTaskImplTest {
//given
prepareMocksForDmaapConsumer(Optional.of(message));
//when
- ConsumerDmaapModel response = dmaapConsumerTask.execute("Sample input").block();
+
+ Mono<Optional<ConsumerDmaapModel>> response = dmaapConsumerTask.execute("Sample input");
//then
- verify(extendedDmaapConsumerHttpClient, times(1)).getHttpConsumerResponse();
- verifyNoMoreInteractions(extendedDmaapConsumerHttpClient);
+ verify(dmaapConsumerReactiveHttpClient, times(1)).getDmaaPConsumerResponse();
+ verifyNoMoreInteractions(dmaapConsumerReactiveHttpClient);
Assertions.assertNotNull(response);
- Assertions.assertEquals(consumerDmaapModel, response);
+ Assertions.assertEquals(consumerDmaapModel, response.block().get());
}
@@ -128,11 +127,11 @@ class DmaapConsumerTaskImplTest {
JsonElement jsonElement = new JsonParser().parse(parsed);
Mockito.doReturn(Optional.of(jsonElement.getAsJsonObject()))
.when(dmaapConsumerJsonParser).getJsonObjectFromAnArray(jsonElement);
- extendedDmaapConsumerHttpClient = mock(ExtendedDmaapConsumerHttpClientImpl.class);
- when(extendedDmaapConsumerHttpClient.getHttpConsumerResponse()).thenReturn(message);
+ dmaapConsumerReactiveHttpClient = mock(DmaapConsumerReactiveHttpClient.class);
+ when(dmaapConsumerReactiveHttpClient.getDmaaPConsumerResponse()).thenReturn(Mono.just(message));
when(appConfig.getDmaapConsumerConfiguration()).thenReturn(dmaapConsumerConfiguration);
dmaapConsumerTask = spy(new DmaapConsumerTaskImpl(appConfig, dmaapConsumerJsonParser));
when(dmaapConsumerTask.resolveConfiguration()).thenReturn(dmaapConsumerConfiguration);
- doReturn(extendedDmaapConsumerHttpClient).when(dmaapConsumerTask).resolveClient();
+ doReturn(dmaapConsumerReactiveHttpClient).when(dmaapConsumerTask).resolveClient();
}
} \ 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 5736afeb..225dd3f5 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
@@ -22,13 +22,10 @@ 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.onap.dcaegen2.services.prh.service.consumer.DmaapConsumerReactiveHttpClient;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Primary;
@@ -45,10 +42,10 @@ public class DmaapConsumerTaskSpy {
AppConfig appConfig = spy(AppConfig.class);
doReturn(mock(DmaapConsumerConfiguration.class)).when(appConfig).getDmaapConsumerConfiguration();
DmaapConsumerTaskImpl dmaapConsumerTask = spy(new DmaapConsumerTaskImpl(appConfig));
- ExtendedDmaapConsumerHttpClientImpl extendedDmaapConsumerHttpClient = mock(
- ExtendedDmaapConsumerHttpClientImpl.class);
+ DmaapConsumerReactiveHttpClient dmaapConsumerReactiveHttpClient = mock(
+ DmaapConsumerReactiveHttpClient.class);
doReturn(mock(DmaapConsumerConfiguration.class)).when(dmaapConsumerTask).resolveConfiguration();
- doReturn(extendedDmaapConsumerHttpClient).when(dmaapConsumerTask).resolveClient();
+ doReturn(dmaapConsumerReactiveHttpClient).when(dmaapConsumerTask).resolveClient();
return dmaapConsumerTask;
}
}
diff --git a/prh-dmaap-client/src/main/java/org/onap/dcaegen2/services/prh/service/consumer/DmaapConsumerReactiveHttpClient.java b/prh-dmaap-client/src/main/java/org/onap/dcaegen2/services/prh/service/consumer/DmaapConsumerReactiveHttpClient.java
index 859784a8..a99833dc 100644
--- a/prh-dmaap-client/src/main/java/org/onap/dcaegen2/services/prh/service/consumer/DmaapConsumerReactiveHttpClient.java
+++ b/prh-dmaap-client/src/main/java/org/onap/dcaegen2/services/prh/service/consumer/DmaapConsumerReactiveHttpClient.java
@@ -24,6 +24,7 @@ import static org.springframework.web.reactive.function.client.ExchangeFilterFun
import java.net.URI;
import java.net.URISyntaxException;
+import java.util.Optional;
import org.apache.http.client.utils.URIBuilder;
import org.onap.dcaegen2.services.prh.config.DmaapConsumerConfiguration;
import org.slf4j.Logger;
@@ -66,7 +67,7 @@ public class DmaapConsumerReactiveHttpClient {
.build();
}
- public Mono<String> getDmaaPConsumerResposne() {
+ public Mono<Optional<String>> getDmaaPConsumerResponse() {
try {
return webClient
.get()
@@ -75,8 +76,10 @@ public class DmaapConsumerReactiveHttpClient {
.onStatus(HttpStatus::is4xxClientError, clientResponse ->
Mono.error(new Exception("HTTP 400"))
)
- .onStatus(HttpStatus::is5xxServerError, clientResponse -> Mono.error(new Exception("HTTP 500")))
- .bodyToMono(String.class);
+ .onStatus(HttpStatus::is5xxServerError, clientResponse ->
+ Mono.error(new Exception("HTTP 500")))
+ .bodyToMono(String.class)
+ .map(Optional::of);
} catch (URISyntaxException e) {
logger.warn("Exception while executing HTTP request: ", e);
return Mono.error(e);
diff --git a/prh-dmaap-client/src/main/java/org/onap/dcaegen2/services/prh/service/consumer/ExtendedDmaapConsumerHttpClientImpl.java b/prh-dmaap-client/src/main/java/org/onap/dcaegen2/services/prh/service/consumer/ExtendedDmaapConsumerHttpClientImpl.java
deleted file mode 100644
index 0f8fe28c..00000000
--- a/prh-dmaap-client/src/main/java/org/onap/dcaegen2/services/prh/service/consumer/ExtendedDmaapConsumerHttpClientImpl.java
+++ /dev/null
@@ -1,130 +0,0 @@
-/*
- * ============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 java.io.IOException;
-import java.net.URI;
-import java.net.URISyntaxException;
-import java.util.Optional;
-import org.apache.http.HttpEntity;
-import org.apache.http.client.ResponseHandler;
-import org.apache.http.client.methods.HttpGet;
-import org.apache.http.client.methods.HttpRequestBase;
-import org.apache.http.client.utils.URIBuilder;
-import org.apache.http.impl.client.CloseableHttpClient;
-import org.apache.http.util.EntityUtils;
-import org.onap.dcaegen2.services.prh.config.DmaapConsumerConfiguration;
-import org.onap.dcaegen2.services.prh.service.DmaapHttpClientImpl;
-import org.onap.dcaegen2.services.prh.service.HttpUtils;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-
-public class ExtendedDmaapConsumerHttpClientImpl {
-
- private final Logger logger = LoggerFactory.getLogger(this.getClass());
-
- private final CloseableHttpClient closeableHttpClient;
- private final String dmaapHostName;
- private final String dmaapProtocol;
- private final Integer dmaapPortNumber;
- private final String dmaapTopicName;
- private final String consumerGroup;
- private final String consumerId;
- private final String dmaapContentType;
-
-
- public ExtendedDmaapConsumerHttpClientImpl(DmaapConsumerConfiguration configuration) {
- this.closeableHttpClient = new DmaapHttpClientImpl(configuration).getHttpClient();
- this.dmaapHostName = configuration.dmaapHostName();
- this.dmaapProtocol = configuration.dmaapProtocol();
- this.dmaapPortNumber = configuration.dmaapPortNumber();
- this.dmaapTopicName = configuration.dmaapTopicName();
- this.consumerGroup = configuration.consumerGroup();
- this.consumerId = configuration.consumerId();
- this.dmaapContentType = configuration.dmaapContentType();
- }
-
- public Optional<String> getHttpConsumerResponse() {
-
- try {
- return createRequest()
- .flatMap(this::executeHttpClient);
- } catch (URISyntaxException e) {
- logger.warn("Exception while executing HTTP request: ", e);
- }
- return Optional.empty();
- }
-
- private Optional<String> executeHttpClient(HttpRequestBase httpRequestBase) {
- try {
- return closeableHttpClient.execute(httpRequestBase, getDmaapConsumerResponseHandler());
- } catch (IOException e) {
- logger.warn("Exception while executing HTTP request: ", e);
- }
- return Optional.empty();
- }
-
- private Optional<HttpRequestBase> createRequest() throws URISyntaxException {
- return "application/json".equals(dmaapContentType)
- ? createDmaapConsumerExtendedURI().map(this::createHttpRequest)
- : Optional.empty();
- }
-
- private HttpRequestBase createHttpRequest(URI extendedURI) {
- HttpRequestBase httpRequestBase = new HttpGet(extendedURI);
- httpRequestBase.addHeader("Content-type", dmaapContentType);
- return httpRequestBase;
- }
-
-
- private String createRequestPath() {
- return dmaapTopicName + "/" + consumerGroup + "/" + consumerId;
- }
-
- private Optional<URI> createDmaapConsumerExtendedURI() throws URISyntaxException {
- return Optional.ofNullable(new URIBuilder()
- .setScheme(dmaapProtocol)
- .setHost(dmaapHostName)
- .setPort(dmaapPortNumber)
- .setPath(createRequestPath()).build());
- }
-
- private ResponseHandler<Optional<String>> getDmaapConsumerResponseHandler() {
- return httpResponse -> {
- final int responseCode = httpResponse.getStatusLine().getStatusCode();
- logger.info("Status code of operation: {}", responseCode);
- final HttpEntity responseEntity = httpResponse.getEntity();
-
- if (HttpUtils.isSuccessfulResponseCode(responseCode)) {
- logger.trace("HTTP response successful.");
- final String dmaapResponse = EntityUtils.toString(responseEntity);
- return Optional.of(dmaapResponse);
- } else {
- String dmaapResponse = responseEntity != null ? EntityUtils.toString(responseEntity) : "";
- logger.trace("HTTP response not successful : {}", dmaapResponse);
- return Optional.of(String.valueOf(responseCode));
- }
- };
- }
-}
-
-
diff --git a/prh-dmaap-client/src/test/java/org/onap/dcaegen2/services/prh/service/consumer/ExtendedDmaapConsumerHttpClientImplTest.java b/prh-dmaap-client/src/test/java/org/onap/dcaegen2/services/prh/service/consumer/ExtendedDmaapConsumerHttpClientImplTest.java
index 39c10de5..d2c0e77b 100644
--- a/prh-dmaap-client/src/test/java/org/onap/dcaegen2/services/prh/service/consumer/ExtendedDmaapConsumerHttpClientImplTest.java
+++ b/prh-dmaap-client/src/test/java/org/onap/dcaegen2/services/prh/service/consumer/ExtendedDmaapConsumerHttpClientImplTest.java
@@ -1,96 +1,96 @@
-/*-
- * ============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.apache.http.client.ResponseHandler;
-import org.apache.http.client.methods.HttpGet;
-import org.apache.http.impl.client.CloseableHttpClient;
-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 java.io.IOException;
-import java.lang.reflect.Field;
-import java.util.Optional;
-
-import static org.mockito.ArgumentMatchers.any;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.when;
-
-
-public class ExtendedDmaapConsumerHttpClientImplTest {
-
- private static ExtendedDmaapConsumerHttpClientImpl objectUnderTest;
-
- private static DmaapConsumerConfiguration configurationMock = mock(DmaapConsumerConfiguration.class);
- private static CloseableHttpClient closeableHttpClientMock = mock(CloseableHttpClient.class);
-
- private static final String JSON_MESSAGE = "{ \"responseFromDmaap\": \"Success\" }";
-
- private static Optional<String> expectedResult = Optional.empty();
-
- @BeforeAll
- public static void init() throws NoSuchFieldException, IllegalAccessException {
-
- when(configurationMock.dmaapHostName()).thenReturn("54.45.33.2");
- when(configurationMock.dmaapProtocol()).thenReturn("https");
- when(configurationMock.dmaapPortNumber()).thenReturn(1234);
- when(configurationMock.dmaapUserName()).thenReturn("PRH");
- when(configurationMock.dmaapUserPassword()).thenReturn("PRH");
- when(configurationMock.dmaapContentType()).thenReturn("application/json");
- when(configurationMock.dmaapTopicName()).thenReturn("unauthenticated.SEC_OTHER_OUTPUT");
- when(configurationMock.consumerGroup()).thenReturn("OpenDCAE-c12");
- when(configurationMock.consumerId()).thenReturn("c12");
-
- objectUnderTest = new ExtendedDmaapConsumerHttpClientImpl(configurationMock);
-
- setField();
- }
-
-
- @Test
- public void getHttpResponseGet_success() throws IOException {
- expectedResult = Optional.of(JSON_MESSAGE);
-
- when(closeableHttpClientMock.execute(any(HttpGet.class), any(ResponseHandler.class)))
- .thenReturn(expectedResult);
-
- Optional<String> actualResult = objectUnderTest.getHttpConsumerResponse();
-
- Assertions.assertEquals(expectedResult.get(), actualResult.get());
- }
-
- @Test
- public void getExtendedDetails_returnsNull() throws IOException {
- when(closeableHttpClientMock.execute(any(HttpGet.class), any(ResponseHandler.class))).
- thenReturn(Optional.empty());
- Optional<String> actualResult = objectUnderTest.getHttpConsumerResponse();
- Assertions.assertEquals(Optional.empty(),actualResult);
- }
-
-
- private static void setField() throws NoSuchFieldException, IllegalAccessException {
- Field field = objectUnderTest.getClass().getDeclaredField("closeableHttpClient");
- field.setAccessible(true);
- field.set(objectUnderTest, closeableHttpClientMock);
- }
-}
+///*-
+// * ============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.apache.http.client.ResponseHandler;
+//import org.apache.http.client.methods.HttpGet;
+//import org.apache.http.impl.client.CloseableHttpClient;
+//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 java.io.IOException;
+//import java.lang.reflect.Field;
+//import java.util.Optional;
+//
+//import static org.mockito.ArgumentMatchers.any;
+//import static org.mockito.Mockito.mock;
+//import static org.mockito.Mockito.when;
+//
+//
+//public class ExtendedDmaapConsumerHttpClientImplTest {
+//
+// private static ExtendedDmaapConsumerHttpClientImpl objectUnderTest;
+//
+// private static DmaapConsumerConfiguration configurationMock = mock(DmaapConsumerConfiguration.class);
+// private static CloseableHttpClient closeableHttpClientMock = mock(CloseableHttpClient.class);
+//
+// private static final String JSON_MESSAGE = "{ \"responseFromDmaap\": \"Success\" }";
+//
+// private static Optional<String> expectedResult = Optional.empty();
+//
+// @BeforeAll
+// public static void init() throws NoSuchFieldException, IllegalAccessException {
+//
+// when(configurationMock.dmaapHostName()).thenReturn("54.45.33.2");
+// when(configurationMock.dmaapProtocol()).thenReturn("https");
+// when(configurationMock.dmaapPortNumber()).thenReturn(1234);
+// when(configurationMock.dmaapUserName()).thenReturn("PRH");
+// when(configurationMock.dmaapUserPassword()).thenReturn("PRH");
+// when(configurationMock.dmaapContentType()).thenReturn("application/json");
+// when(configurationMock.dmaapTopicName()).thenReturn("unauthenticated.SEC_OTHER_OUTPUT");
+// when(configurationMock.consumerGroup()).thenReturn("OpenDCAE-c12");
+// when(configurationMock.consumerId()).thenReturn("c12");
+//
+// objectUnderTest = new ExtendedDmaapConsumerHttpClientImpl(configurationMock);
+//
+// setField();
+// }
+//
+//
+// @Test
+// public void getHttpResponseGet_success() throws IOException {
+// expectedResult = Optional.of(JSON_MESSAGE);
+//
+// when(closeableHttpClientMock.execute(any(HttpGet.class), any(ResponseHandler.class)))
+// .thenReturn(expectedResult);
+//
+// Optional<String> actualResult = objectUnderTest.getHttpConsumerResponse();
+//
+// Assertions.assertEquals(expectedResult.get(), actualResult.get());
+// }
+//
+// @Test
+// public void getExtendedDetails_returnsNull() throws IOException {
+// when(closeableHttpClientMock.execute(any(HttpGet.class), any(ResponseHandler.class))).
+// thenReturn(Optional.empty());
+// Optional<String> actualResult = objectUnderTest.getHttpConsumerResponse();
+// Assertions.assertEquals(Optional.empty(),actualResult);
+// }
+//
+//
+// private static void setField() throws NoSuchFieldException, IllegalAccessException {
+// Field field = objectUnderTest.getClass().getDeclaredField("closeableHttpClient");
+// field.setAccessible(true);
+// field.set(objectUnderTest, closeableHttpClientMock);
+// }
+//}