diff options
Diffstat (limited to 'prh-dmaap-client/src')
5 files changed, 29 insertions, 134 deletions
diff --git a/prh-dmaap-client/src/main/java/org/onap/dcaegen2/services/prh/service/DMaaPReactiveWebClient.java b/prh-dmaap-client/src/main/java/org/onap/dcaegen2/services/prh/service/DMaaPReactiveWebClient.java index a41ec3a4..ab81bede 100644 --- a/prh-dmaap-client/src/main/java/org/onap/dcaegen2/services/prh/service/DMaaPReactiveWebClient.java +++ b/prh-dmaap-client/src/main/java/org/onap/dcaegen2/services/prh/service/DMaaPReactiveWebClient.java @@ -21,6 +21,7 @@ package org.onap.dcaegen2.services.prh.service; import static org.springframework.web.reactive.function.client.ExchangeFilterFunctions.basicAuthentication; +import org.onap.dcaegen2.services.prh.config.DmaapCustomConfig; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.http.HttpHeaders; @@ -35,26 +36,34 @@ public class DMaaPReactiveWebClient { private final Logger logger = LoggerFactory.getLogger(this.getClass()); - private DMaaPReactiveWebClient() { + private String dMaaPContentType; + private String dMaaPUserName; + private String dMaaPUserPassword; + + public DMaaPReactiveWebClient fromConfiguration(DmaapCustomConfig dmaapCustomConfig) { + this.dMaaPUserName = dmaapCustomConfig.dmaapUserName(); + this.dMaaPUserPassword = dmaapCustomConfig.dmaapUserPassword(); + this.dMaaPContentType = dmaapCustomConfig.dmaapContentType(); + return this; } - private WebClient create(WebClientBuilder webClientBuilder) { + public WebClient build() { return WebClient.builder() - .defaultHeader(HttpHeaders.CONTENT_TYPE, webClientBuilder.dMaaPContentType) - .filter(basicAuthentication(webClientBuilder.dMaaPUserName, webClientBuilder.dMaaPUserPassword)) + .defaultHeader(HttpHeaders.CONTENT_TYPE, dMaaPContentType) + .filter(basicAuthentication(dMaaPUserName, dMaaPUserPassword)) .filter(logRequest()) .filter(logResponse()) .build(); } - ExchangeFilterFunction logResponse() { + private ExchangeFilterFunction logResponse() { return ExchangeFilterFunction.ofResponseProcessor(clientResponse -> { logger.info("Response Status {}", clientResponse.statusCode()); return Mono.just(clientResponse); }); } - ExchangeFilterFunction logRequest() { + private ExchangeFilterFunction logRequest() { return ExchangeFilterFunction.ofRequestProcessor(clientRequest -> { logger.info("Request: {} {}", clientRequest.method(), clientRequest.url()); clientRequest.headers() @@ -63,32 +72,4 @@ public class DMaaPReactiveWebClient { }); } - public static class WebClientBuilder { - - private String dMaaPContentType; - private String dMaaPUserName; - private String dMaaPUserPassword; - - public WebClientBuilder() { - } - - public WebClientBuilder dmaapContentType(String dmaapContentType) { - this.dMaaPContentType = dmaapContentType; - return this; - } - - public WebClientBuilder dmaapUserName(String dmaapUserName) { - this.dMaaPUserName = dmaapUserName; - return this; - } - - public WebClientBuilder dmaapUserPassword(String dmaapUserPassword) { - this.dMaaPUserPassword = dmaapUserPassword; - return this; - } - - public WebClient build() { - return new DMaaPReactiveWebClient().create(this); - } - } } diff --git a/prh-dmaap-client/src/main/java/org/onap/dcaegen2/services/prh/service/HttpUtils.java b/prh-dmaap-client/src/main/java/org/onap/dcaegen2/services/prh/service/HttpUtils.java deleted file mode 100644 index b96f80dd..00000000 --- a/prh-dmaap-client/src/main/java/org/onap/dcaegen2/services/prh/service/HttpUtils.java +++ /dev/null @@ -1,31 +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; - -import org.apache.http.HttpStatus; - -public final class HttpUtils implements HttpStatus { - - private HttpUtils() {} - - public static boolean isSuccessfulResponseCode(Integer statusCode) { - return statusCode >= 200 && statusCode < 300; - } -} 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 index fad18699..2e323c5e 100644 --- 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 @@ -19,8 +19,12 @@ */ package org.onap.dcaegen2.services.prh.service; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.when; + import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; +import org.onap.dcaegen2.services.prh.config.DmaapConsumerConfiguration; import org.springframework.web.reactive.function.client.WebClient; /** @@ -28,19 +32,23 @@ import org.springframework.web.reactive.function.client.WebClient; */ public class DMaaPReactiveWebClientTest { + @Test public void builder_shouldBuildDMaaPReactiveWebClient() { //given + DmaapConsumerConfiguration dmaapConsumerConfiguration = mock(DmaapConsumerConfiguration.class); WebClient dMaaPReactiveWebClient; String dMaaPContentType = "*/*"; String dMaaPUserName = "DMaaP"; String dMaaPUserPassword = "DMaaP"; //when - dMaaPReactiveWebClient = new DMaaPReactiveWebClient.WebClientBuilder() - .dmaapContentType(dMaaPContentType) - .dmaapUserName(dMaaPUserName) - .dmaapUserPassword(dMaaPUserPassword).build(); + when(dmaapConsumerConfiguration.dmaapContentType()).thenReturn(dMaaPContentType); + when(dmaapConsumerConfiguration.dmaapUserName()).thenReturn(dMaaPUserName); + when(dmaapConsumerConfiguration.dmaapUserPassword()).thenReturn(dMaaPUserPassword); + dMaaPReactiveWebClient = new DMaaPReactiveWebClient() + .fromConfiguration(dmaapConsumerConfiguration) + .build(); //then Assertions.assertNotNull(dMaaPReactiveWebClient); diff --git a/prh-dmaap-client/src/test/java/org/onap/dcaegen2/services/prh/service/consumer/DMaaPConsumerReactiveHttpClientTest.java b/prh-dmaap-client/src/test/java/org/onap/dcaegen2/services/prh/service/consumer/DMaaPConsumerReactiveHttpClientTest.java index cbc7bd62..1f04da15 100644 --- a/prh-dmaap-client/src/test/java/org/onap/dcaegen2/services/prh/service/consumer/DMaaPConsumerReactiveHttpClientTest.java +++ b/prh-dmaap-client/src/test/java/org/onap/dcaegen2/services/prh/service/consumer/DMaaPConsumerReactiveHttpClientTest.java @@ -98,36 +98,6 @@ public class DMaaPConsumerReactiveHttpClientTest { }).verifyComplete(); } - - @Test - public void getHttpResponse_HttpResponse4xxClientError() { - - //when - mockDependantObjects(); - doAnswer(invocationOnMock -> Mono.error(new Exception("400"))) - .when(responseSpec).onStatus(HttpStatus::is4xxClientError, e -> Mono.error(new Exception("400"))); - DMaaPConsumerReactiveHttpClient.createDMaaPWebClient(webClient); - - //then - StepVerifier.create(DMaaPConsumerReactiveHttpClient.getDMaaPConsumerResponse()).expectSubscription() - .expectError(Exception.class); - - } - - @Test - public void getHttpResponse_HttpResponse5xxClientError() { - - //when - mockDependantObjects(); - doAnswer(invocationOnMock -> Mono.error(new Exception("500"))) - .when(responseSpec).onStatus(HttpStatus::is4xxClientError, e -> Mono.error(new Exception("500"))); - DMaaPConsumerReactiveHttpClient.createDMaaPWebClient(webClient); - - //then - StepVerifier.create(DMaaPConsumerReactiveHttpClient.getDMaaPConsumerResponse()).expectSubscription() - .expectError(Exception.class); - } - @Test public void getHttpResponse_whenURISyntaxExceptionHasBeenThrown() throws URISyntaxException { //given @@ -139,7 +109,7 @@ public class DMaaPConsumerReactiveHttpClientTest { //then StepVerifier.create(DMaaPConsumerReactiveHttpClient.getDMaaPConsumerResponse()).expectSubscription() - .expectError(Exception.class); + .expectError(Exception.class).verify(); } private void mockDependantObjects() { diff --git a/prh-dmaap-client/src/test/java/org/onap/dcaegen2/services/prh/service/producer/DMaaPProducerReactiveHttpClientTest.java b/prh-dmaap-client/src/test/java/org/onap/dcaegen2/services/prh/service/producer/DMaaPProducerReactiveHttpClientTest.java index f1fb70b0..20ab64e5 100644 --- a/prh-dmaap-client/src/test/java/org/onap/dcaegen2/services/prh/service/producer/DMaaPProducerReactiveHttpClientTest.java +++ b/prh-dmaap-client/src/test/java/org/onap/dcaegen2/services/prh/service/producer/DMaaPProducerReactiveHttpClientTest.java @@ -20,7 +20,6 @@ package org.onap.dcaegen2.services.prh.service.producer; import static org.mockito.ArgumentMatchers.any; -import static org.mockito.Mockito.doAnswer; import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.spy; @@ -36,7 +35,6 @@ import org.onap.dcaegen2.services.prh.config.DmaapPublisherConfiguration; import org.onap.dcaegen2.services.prh.model.ConsumerDmaapModel; import org.onap.dcaegen2.services.prh.model.ConsumerDmaapModelForUnitTest; import org.springframework.http.HttpHeaders; -import org.springframework.http.HttpStatus; import org.springframework.web.reactive.function.client.WebClient; import org.springframework.web.reactive.function.client.WebClient.RequestBodyUriSpec; import org.springframework.web.reactive.function.client.WebClient.RequestHeadersSpec; @@ -97,37 +95,6 @@ public class DMaaPProducerReactiveHttpClientTest { } @Test - public void getHttpResponse_HttpResponse4xxClientError() { - //when - mockWebClientDependantObject(); - - doAnswer(invocationOnMock -> Mono.error(new Exception("400"))) - .when(responseSpec).onStatus(HttpStatus::is4xxClientError, e -> Mono.error(new Exception("400"))); - dMaaPProducerReactiveHttpClient.createDMaaPWebClient(webClient); - - //then - StepVerifier.create(dMaaPProducerReactiveHttpClient.getDMaaPProducerResponse(Mono.just(consumerDmaapModel))) - .expectSubscription() - .expectError(Exception.class); - - } - - @Test - public void getHttpResponse_HttpResponse5xxClientError() { - - //when - mockWebClientDependantObject(); - doAnswer(invocationOnMock -> Mono.error(new Exception("500"))) - .when(responseSpec).onStatus(HttpStatus::is4xxClientError, e -> Mono.error(new Exception("500"))); - dMaaPProducerReactiveHttpClient.createDMaaPWebClient(webClient); - - //then - StepVerifier.create(dMaaPProducerReactiveHttpClient.getDMaaPProducerResponse(Mono.just(consumerDmaapModel))) - .expectSubscription() - .expectError(Exception.class); - } - - @Test public void getHttpResponse_whenURISyntaxExceptionHasBeenThrown() throws URISyntaxException { //given dMaaPProducerReactiveHttpClient = spy(dMaaPProducerReactiveHttpClient); @@ -138,7 +105,7 @@ public class DMaaPProducerReactiveHttpClientTest { //then StepVerifier.create(dMaaPProducerReactiveHttpClient.getDMaaPProducerResponse(any())).expectSubscription() - .expectError(Exception.class); + .expectError(Exception.class).verify(); } private void mockWebClientDependantObject() { |