From fc36a6eeebbc05d640d20bfe761037e23d20f1e0 Mon Sep 17 00:00:00 2001 From: Michal Kabaj Date: Thu, 5 Dec 2019 08:58:17 +0100 Subject: Refactor AaiClient API - package structure - Removed redundant get/patch packages - Flattened aii api package structure to 'api' and 'main' Issue-ID: DCAEGEN2-1955 Signed-off-by: Michal Kabaj Change-Id: I9025245f70c5dd0bb03e7289f8bc7dbf08853687 --- .../prh/adapter/aai/AaiClientConfigurations.java | 60 -------------- .../prh/adapter/aai/AbstractHttpClientTest.java | 41 ---------- .../adapter/aai/api/AaiClientConfigurations.java | 60 ++++++++++++++ .../aai/api/AaiGetServiceInstanceClientTest.java | 69 ++++++++++++++++ .../prh/adapter/aai/api/AaiHttpGetClientTest.java | 80 ++++++++++++++++++ .../adapter/aai/api/AaiHttpPatchClientTest.java | 93 +++++++++++++++++++++ .../adapter/aai/api/AbstractHttpClientTest.java | 41 ++++++++++ .../aai/get/AaiGetServiceInstanceClientTest.java | 72 ---------------- .../prh/adapter/aai/get/AaiHttpGetClientTest.java | 82 ------------------- .../adapter/aai/patch/AaiHttpPatchClientTest.java | 95 ---------------------- 10 files changed, 343 insertions(+), 350 deletions(-) delete mode 100644 prh-commons/src/test/java/org/onap/dcaegen2/services/prh/adapter/aai/AaiClientConfigurations.java delete mode 100644 prh-commons/src/test/java/org/onap/dcaegen2/services/prh/adapter/aai/AbstractHttpClientTest.java create mode 100644 prh-commons/src/test/java/org/onap/dcaegen2/services/prh/adapter/aai/api/AaiClientConfigurations.java create mode 100644 prh-commons/src/test/java/org/onap/dcaegen2/services/prh/adapter/aai/api/AaiGetServiceInstanceClientTest.java create mode 100644 prh-commons/src/test/java/org/onap/dcaegen2/services/prh/adapter/aai/api/AaiHttpGetClientTest.java create mode 100644 prh-commons/src/test/java/org/onap/dcaegen2/services/prh/adapter/aai/api/AaiHttpPatchClientTest.java create mode 100644 prh-commons/src/test/java/org/onap/dcaegen2/services/prh/adapter/aai/api/AbstractHttpClientTest.java delete mode 100644 prh-commons/src/test/java/org/onap/dcaegen2/services/prh/adapter/aai/get/AaiGetServiceInstanceClientTest.java delete mode 100644 prh-commons/src/test/java/org/onap/dcaegen2/services/prh/adapter/aai/get/AaiHttpGetClientTest.java delete mode 100644 prh-commons/src/test/java/org/onap/dcaegen2/services/prh/adapter/aai/patch/AaiHttpPatchClientTest.java (limited to 'prh-commons/src/test/java/org/onap/dcaegen2') diff --git a/prh-commons/src/test/java/org/onap/dcaegen2/services/prh/adapter/aai/AaiClientConfigurations.java b/prh-commons/src/test/java/org/onap/dcaegen2/services/prh/adapter/aai/AaiClientConfigurations.java deleted file mode 100644 index 072fa2d4..00000000 --- a/prh-commons/src/test/java/org/onap/dcaegen2/services/prh/adapter/aai/AaiClientConfigurations.java +++ /dev/null @@ -1,60 +0,0 @@ -/* - * ============LICENSE_START======================================================= - * DCAEGEN2-SERVICES-SDK - * ================================================================================ - * Copyright (C) 2019 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.adapter.aai; - -import java.util.HashMap; -import java.util.Map; -import org.onap.dcaegen2.services.prh.adapter.aai.api.AaiClientConfiguration; -import org.onap.dcaegen2.services.prh.adapter.aai.api.ImmutableAaiClientConfiguration; - -public final class AaiClientConfigurations { - - private AaiClientConfigurations() { - } - - public static AaiClientConfiguration secureConfiguration() { - return secureConfiguration(new HashMap<>()); - } - - public static AaiClientConfiguration secureConfiguration(Map headers) { - return validConfiguration(headers, true); - } - - public static AaiClientConfiguration insecureConfiguration() { - return validConfiguration(new HashMap<>(), false); - } - - private static AaiClientConfiguration validConfiguration(Map headers, boolean secure) { - return new ImmutableAaiClientConfiguration.Builder() - .baseUrl("https://aai.onap.svc.cluster.local:8443/aai/v12") - .aaiUserName("sample-username") - .aaiUserPassword("sample-password") - .aaiIgnoreSslCertificateErrors(false) - .trustStorePath("/trust.pkcs12") - .trustStorePasswordPath("/trust.pass") - .keyStorePath("/server.pkcs12") - .keyStorePasswordPath("/server.pass") - .enableAaiCertAuth(secure) - .aaiHeaders(headers) - .aaiServiceInstancePath( - "/business/customers/customer/${customer}/service-subscriptions/service-subscription/${serviceType}/service-instances/service-instance/${serviceInstanceId}") - .build(); - } -} \ No newline at end of file diff --git a/prh-commons/src/test/java/org/onap/dcaegen2/services/prh/adapter/aai/AbstractHttpClientTest.java b/prh-commons/src/test/java/org/onap/dcaegen2/services/prh/adapter/aai/AbstractHttpClientTest.java deleted file mode 100644 index fd9523a9..00000000 --- a/prh-commons/src/test/java/org/onap/dcaegen2/services/prh/adapter/aai/AbstractHttpClientTest.java +++ /dev/null @@ -1,41 +0,0 @@ -/* - * ============LICENSE_START======================================================= - * DCAEGEN2-SERVICES-SDK - * ================================================================================ - * Copyright (C) 2019 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.adapter.aai; - -import static org.mockito.Mockito.mock; - -import org.onap.dcaegen2.services.prh.adapter.aai.api.AaiClientConfiguration; -import org.onap.dcaegen2.services.prh.model.AaiJsonBodyBuilderImpl; -import org.onap.dcaegen2.services.prh.model.ConsumerDmaapModel; -import org.onap.dcaegen2.services.sdk.rest.services.adapters.http.HttpResponse; -import org.onap.dcaegen2.services.sdk.rest.services.adapters.http.RxHttpClient; - -public class AbstractHttpClientTest { - - protected final ConsumerDmaapModel aaiModel = mock(ConsumerDmaapModel.class); - protected final RxHttpClient httpClient = mock(RxHttpClient.class); - protected final AaiJsonBodyBuilderImpl bodyBuilder = mock(AaiJsonBodyBuilderImpl.class); - protected final HttpResponse response = mock(HttpResponse.class); - - - protected String constructAaiUri(AaiClientConfiguration configuration, String pnfName) { - return configuration.pnfUrl() + "/" + pnfName; - } -} diff --git a/prh-commons/src/test/java/org/onap/dcaegen2/services/prh/adapter/aai/api/AaiClientConfigurations.java b/prh-commons/src/test/java/org/onap/dcaegen2/services/prh/adapter/aai/api/AaiClientConfigurations.java new file mode 100644 index 00000000..ab29e02a --- /dev/null +++ b/prh-commons/src/test/java/org/onap/dcaegen2/services/prh/adapter/aai/api/AaiClientConfigurations.java @@ -0,0 +1,60 @@ +/* + * ============LICENSE_START======================================================= + * DCAEGEN2-SERVICES-SDK + * ================================================================================ + * Copyright (C) 2019 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.adapter.aai.api; + +import java.util.HashMap; +import java.util.Map; +import org.onap.dcaegen2.services.prh.adapter.aai.main.AaiClientConfiguration; +import org.onap.dcaegen2.services.prh.adapter.aai.main.ImmutableAaiClientConfiguration; + +public final class AaiClientConfigurations { + + private AaiClientConfigurations() { + } + + public static AaiClientConfiguration secureConfiguration() { + return secureConfiguration(new HashMap<>()); + } + + public static AaiClientConfiguration secureConfiguration(Map headers) { + return validConfiguration(headers, true); + } + + public static AaiClientConfiguration insecureConfiguration() { + return validConfiguration(new HashMap<>(), false); + } + + private static AaiClientConfiguration validConfiguration(Map headers, boolean secure) { + return new ImmutableAaiClientConfiguration.Builder() + .baseUrl("https://aai.onap.svc.cluster.local:8443/aai/v12") + .aaiUserName("sample-username") + .aaiUserPassword("sample-password") + .aaiIgnoreSslCertificateErrors(false) + .trustStorePath("/trust.pkcs12") + .trustStorePasswordPath("/trust.pass") + .keyStorePath("/server.pkcs12") + .keyStorePasswordPath("/server.pass") + .enableAaiCertAuth(secure) + .aaiHeaders(headers) + .aaiServiceInstancePath( + "/business/customers/customer/${customer}/service-subscriptions/service-subscription/${serviceType}/service-instances/service-instance/${serviceInstanceId}") + .build(); + } +} \ No newline at end of file diff --git a/prh-commons/src/test/java/org/onap/dcaegen2/services/prh/adapter/aai/api/AaiGetServiceInstanceClientTest.java b/prh-commons/src/test/java/org/onap/dcaegen2/services/prh/adapter/aai/api/AaiGetServiceInstanceClientTest.java new file mode 100644 index 00000000..551f93fb --- /dev/null +++ b/prh-commons/src/test/java/org/onap/dcaegen2/services/prh/adapter/aai/api/AaiGetServiceInstanceClientTest.java @@ -0,0 +1,69 @@ +/* + * ============LICENSE_START======================================================= + * DCAEGEN2-SERVICES-SDK + * ================================================================================ + * Copyright (C) 2019 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.adapter.aai.api; + +import static org.mockito.ArgumentMatchers.any; +import static org.mockito.ArgumentMatchers.argThat; +import static org.mockito.BDDMockito.given; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.verify; +import static org.onap.dcaegen2.services.prh.adapter.aai.api.AaiClientConfigurations.secureConfiguration; + +import io.vavr.collection.HashMap; +import io.vavr.collection.Map; +import org.junit.jupiter.api.Test; +import org.onap.dcaegen2.services.sdk.rest.services.adapters.http.HttpRequest; +import reactor.core.publisher.Mono; +import reactor.test.StepVerifier; + +class AaiGetServiceInstanceClientTest extends AbstractHttpClientTest { + + public static final String SERVICE_INSTANCE_PATH = + "https://aai.onap.svc.cluster.local:8443/aai/v12/business/customers/customer/Demonstration/" + + "service-subscriptions/service-subscription/VCPE/service-instances/service-instance/df018f76-7fc8-46ab-8444-7d67e1efc284"; + + @Test + void getAaiResponse_shouldCallGetMethod_withGivenAaiHeaders() { + + // given + AaiServiceInstanceQueryModel model = mock(AaiServiceInstanceQueryModel.class); + Map headers = HashMap.of("sample-key", "sample-value"); + AaiGetServiceInstanceClient cut = new AaiGetServiceInstanceClient(secureConfiguration(headers.toJavaMap()), + httpClient); + + given(model.customerId()).willReturn("Demonstration"); + given(model.serviceInstanceId()).willReturn("df018f76-7fc8-46ab-8444-7d67e1efc284"); + given(model.serviceType()).willReturn("VCPE"); + + given(httpClient.call(any(HttpRequest.class))) + .willReturn(Mono.just(response)); + + // when + StepVerifier + .create(cut.getAaiResponse(model)) + .expectNext(response) + .verifyComplete(); + + //then + verify(httpClient) + .call(argThat(httpRequest -> httpRequest.customHeaders().equals(headers) && + httpRequest.url().equals(SERVICE_INSTANCE_PATH))); + } +} diff --git a/prh-commons/src/test/java/org/onap/dcaegen2/services/prh/adapter/aai/api/AaiHttpGetClientTest.java b/prh-commons/src/test/java/org/onap/dcaegen2/services/prh/adapter/aai/api/AaiHttpGetClientTest.java new file mode 100644 index 00000000..f69fca54 --- /dev/null +++ b/prh-commons/src/test/java/org/onap/dcaegen2/services/prh/adapter/aai/api/AaiHttpGetClientTest.java @@ -0,0 +1,80 @@ +/* + * ============LICENSE_START======================================================= + * DCAEGEN2-SERVICES-SDK + * ================================================================================ + * Copyright (C) 2019 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.adapter.aai.api; + +import static org.mockito.ArgumentMatchers.any; +import static org.mockito.ArgumentMatchers.argThat; +import static org.mockito.BDDMockito.given; +import static org.mockito.Mockito.verify; +import static org.onap.dcaegen2.services.prh.adapter.aai.api.AaiClientConfigurations.secureConfiguration; + +import io.vavr.collection.HashMap; +import io.vavr.collection.Map; +import org.junit.jupiter.api.Test; +import org.onap.dcaegen2.services.prh.adapter.aai.main.AaiClientConfiguration; +import org.onap.dcaegen2.services.sdk.rest.services.adapters.http.HttpRequest; +import reactor.core.publisher.Mono; +import reactor.test.StepVerifier; + +class AaiHttpGetClientTest extends AbstractHttpClientTest { + + @Test + void getAaiResponse_shouldCallGetMethod_withGivenAaiHeaders() { + + // given + Map headers = HashMap.of("sample-key", "sample-value"); + AaiHttpGetClient cut = new AaiHttpGetClient(secureConfiguration(headers.toJavaMap()), httpClient); + + given(httpClient.call(any(HttpRequest.class))) + .willReturn(Mono.just(response)); + + // when + StepVerifier + .create(cut.getAaiResponse(aaiModel)) + .expectNext(response) + .verifyComplete(); + + //then + verify(httpClient) + .call(argThat(httpRequest -> httpRequest.customHeaders().equals(headers))); + } + + @Test + void getAaiResponse_shouldCallGetMethod_withProperUri() { + + // given + AaiClientConfiguration configuration = secureConfiguration(); + String uri = constructAaiUri(configuration, aaiModel.getCorrelationId()); + AaiHttpGetClient cut = new AaiHttpGetClient(configuration, httpClient); + + given(httpClient.call(any(HttpRequest.class))) + .willReturn(Mono.just(response)); + + // when + StepVerifier + .create(cut.getAaiResponse(aaiModel)) + .expectNext(response) + .verifyComplete(); + + // then + verify(httpClient) + .call(argThat(httpRequest -> httpRequest.url().equals(uri))); + } +} diff --git a/prh-commons/src/test/java/org/onap/dcaegen2/services/prh/adapter/aai/api/AaiHttpPatchClientTest.java b/prh-commons/src/test/java/org/onap/dcaegen2/services/prh/adapter/aai/api/AaiHttpPatchClientTest.java new file mode 100644 index 00000000..de53d4d4 --- /dev/null +++ b/prh-commons/src/test/java/org/onap/dcaegen2/services/prh/adapter/aai/api/AaiHttpPatchClientTest.java @@ -0,0 +1,93 @@ +/* + * ============LICENSE_START======================================================= + * DCAEGEN2-SERVICES-SDK + * ================================================================================ + * Copyright (C) 2019 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.adapter.aai.api; + +import static org.mockito.ArgumentMatchers.any; +import static org.mockito.ArgumentMatchers.argThat; +import static org.mockito.ArgumentMatchers.eq; +import static org.mockito.BDDMockito.given; +import static org.mockito.Mockito.verify; +import static org.onap.dcaegen2.services.prh.adapter.aai.api.AaiClientConfigurations.secureConfiguration; + +import io.vavr.collection.HashMap; +import io.vavr.collection.Map; +import org.junit.jupiter.api.Test; +import org.onap.dcaegen2.services.prh.adapter.aai.main.AaiClientConfiguration; +import org.onap.dcaegen2.services.sdk.rest.services.adapters.http.HttpRequest; +import reactor.core.publisher.Mono; +import reactor.test.StepVerifier; + +class AaiHttpPatchClientTest extends AbstractHttpClientTest { + + private final Map DEFAULT_PATCH_HEADERS = + HashMap.of("Content-Type", "application/merge-patch+json"); + + @Test + void getAaiResponse_shouldCallPatchMethod_withGivenHeaders_combinedWithContentType() { + + // given + Map headers = HashMap.of("sample-key", "sample-value"); + Map expectedHeaders = DEFAULT_PATCH_HEADERS.merge(headers); + + AaiHttpPatchClient cut = + new AaiHttpPatchClient(secureConfiguration(headers.toJavaMap()), bodyBuilder, httpClient); + + given(bodyBuilder.createJsonBody(eq(aaiModel))) + .willReturn("test-body"); + + given(httpClient.call(any(HttpRequest.class))) + .willReturn(Mono.just(response)); + + // when + StepVerifier + .create(cut.getAaiResponse(aaiModel)) + .expectNext(response) + .verifyComplete(); + + // then + verify(httpClient) + .call(argThat(httpRequest -> httpRequest.customHeaders().equals(expectedHeaders))); + } + + @Test + void getAaiResponse_shouldCallPatchMethod_withProperUri() { + + // given + AaiClientConfiguration configuration = secureConfiguration(); + String uri = constructAaiUri(configuration, aaiModel.getCorrelationId()); + AaiHttpPatchClient cut = new AaiHttpPatchClient(configuration, bodyBuilder, httpClient); + + given(bodyBuilder.createJsonBody(eq(aaiModel))) + .willReturn("test-body"); + + given(httpClient.call(any(HttpRequest.class))) + .willReturn(Mono.just(response)); + + // when + StepVerifier + .create(cut.getAaiResponse(aaiModel)) + .expectNext(response) + .verifyComplete(); + + // then + verify(httpClient) + .call(argThat(httpRequest -> httpRequest.url().equals(uri))); + } +} diff --git a/prh-commons/src/test/java/org/onap/dcaegen2/services/prh/adapter/aai/api/AbstractHttpClientTest.java b/prh-commons/src/test/java/org/onap/dcaegen2/services/prh/adapter/aai/api/AbstractHttpClientTest.java new file mode 100644 index 00000000..1ccb8cbd --- /dev/null +++ b/prh-commons/src/test/java/org/onap/dcaegen2/services/prh/adapter/aai/api/AbstractHttpClientTest.java @@ -0,0 +1,41 @@ +/* + * ============LICENSE_START======================================================= + * DCAEGEN2-SERVICES-SDK + * ================================================================================ + * Copyright (C) 2019 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.adapter.aai.api; + +import static org.mockito.Mockito.mock; + +import org.onap.dcaegen2.services.prh.adapter.aai.main.AaiClientConfiguration; +import org.onap.dcaegen2.services.prh.model.AaiJsonBodyBuilderImpl; +import org.onap.dcaegen2.services.prh.model.ConsumerDmaapModel; +import org.onap.dcaegen2.services.sdk.rest.services.adapters.http.HttpResponse; +import org.onap.dcaegen2.services.sdk.rest.services.adapters.http.RxHttpClient; + +public class AbstractHttpClientTest { + + protected final ConsumerDmaapModel aaiModel = mock(ConsumerDmaapModel.class); + protected final RxHttpClient httpClient = mock(RxHttpClient.class); + protected final AaiJsonBodyBuilderImpl bodyBuilder = mock(AaiJsonBodyBuilderImpl.class); + protected final HttpResponse response = mock(HttpResponse.class); + + + protected String constructAaiUri(AaiClientConfiguration configuration, String pnfName) { + return configuration.pnfUrl() + "/" + pnfName; + } +} diff --git a/prh-commons/src/test/java/org/onap/dcaegen2/services/prh/adapter/aai/get/AaiGetServiceInstanceClientTest.java b/prh-commons/src/test/java/org/onap/dcaegen2/services/prh/adapter/aai/get/AaiGetServiceInstanceClientTest.java deleted file mode 100644 index 77317414..00000000 --- a/prh-commons/src/test/java/org/onap/dcaegen2/services/prh/adapter/aai/get/AaiGetServiceInstanceClientTest.java +++ /dev/null @@ -1,72 +0,0 @@ -/* - * ============LICENSE_START======================================================= - * DCAEGEN2-SERVICES-SDK - * ================================================================================ - * Copyright (C) 2019 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.adapter.aai.get; - -import static org.mockito.ArgumentMatchers.any; -import static org.mockito.ArgumentMatchers.argThat; -import static org.mockito.BDDMockito.given; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.verify; -import static org.onap.dcaegen2.services.prh.adapter.aai.AaiClientConfigurations.secureConfiguration; - -import io.vavr.collection.HashMap; -import io.vavr.collection.Map; -import org.junit.jupiter.api.Test; -import org.onap.dcaegen2.services.prh.adapter.aai.AbstractHttpClientTest; -import org.onap.dcaegen2.services.prh.adapter.aai.api.get.AaiGetServiceInstanceClient; -import org.onap.dcaegen2.services.prh.adapter.aai.model.AaiServiceInstanceQueryModel; -import org.onap.dcaegen2.services.sdk.rest.services.adapters.http.HttpRequest; -import reactor.core.publisher.Mono; -import reactor.test.StepVerifier; - -class AaiGetServiceInstanceClientTest extends AbstractHttpClientTest { - - public static final String SERVICE_INSTANCE_PATH = - "https://aai.onap.svc.cluster.local:8443/aai/v12/business/customers/customer/Demonstration/" - + "service-subscriptions/service-subscription/VCPE/service-instances/service-instance/df018f76-7fc8-46ab-8444-7d67e1efc284"; - - @Test - void getAaiResponse_shouldCallGetMethod_withGivenAaiHeaders() { - - // given - AaiServiceInstanceQueryModel model = mock(AaiServiceInstanceQueryModel.class); - Map headers = HashMap.of("sample-key", "sample-value"); - AaiGetServiceInstanceClient cut = new AaiGetServiceInstanceClient(secureConfiguration(headers.toJavaMap()), - httpClient); - - given(model.customerId()).willReturn("Demonstration"); - given(model.serviceInstanceId()).willReturn("df018f76-7fc8-46ab-8444-7d67e1efc284"); - given(model.serviceType()).willReturn("VCPE"); - - given(httpClient.call(any(HttpRequest.class))) - .willReturn(Mono.just(response)); - - // when - StepVerifier - .create(cut.getAaiResponse(model)) - .expectNext(response) - .verifyComplete(); - - //then - verify(httpClient) - .call(argThat(httpRequest -> httpRequest.customHeaders().equals(headers) && - httpRequest.url().equals(SERVICE_INSTANCE_PATH))); - } -} diff --git a/prh-commons/src/test/java/org/onap/dcaegen2/services/prh/adapter/aai/get/AaiHttpGetClientTest.java b/prh-commons/src/test/java/org/onap/dcaegen2/services/prh/adapter/aai/get/AaiHttpGetClientTest.java deleted file mode 100644 index 10fc0f49..00000000 --- a/prh-commons/src/test/java/org/onap/dcaegen2/services/prh/adapter/aai/get/AaiHttpGetClientTest.java +++ /dev/null @@ -1,82 +0,0 @@ -/* - * ============LICENSE_START======================================================= - * DCAEGEN2-SERVICES-SDK - * ================================================================================ - * Copyright (C) 2019 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.adapter.aai.get; - -import static org.mockito.ArgumentMatchers.any; -import static org.mockito.ArgumentMatchers.argThat; -import static org.mockito.BDDMockito.given; -import static org.mockito.Mockito.verify; -import static org.onap.dcaegen2.services.prh.adapter.aai.AaiClientConfigurations.secureConfiguration; - -import io.vavr.collection.HashMap; -import io.vavr.collection.Map; -import org.junit.jupiter.api.Test; -import org.onap.dcaegen2.services.prh.adapter.aai.AbstractHttpClientTest; -import org.onap.dcaegen2.services.prh.adapter.aai.api.AaiClientConfiguration; -import org.onap.dcaegen2.services.prh.adapter.aai.api.get.AaiHttpGetClient; -import org.onap.dcaegen2.services.sdk.rest.services.adapters.http.HttpRequest; -import reactor.core.publisher.Mono; -import reactor.test.StepVerifier; - -class AaiHttpGetClientTest extends AbstractHttpClientTest { - - @Test - void getAaiResponse_shouldCallGetMethod_withGivenAaiHeaders() { - - // given - Map headers = HashMap.of("sample-key", "sample-value"); - AaiHttpGetClient cut = new AaiHttpGetClient(secureConfiguration(headers.toJavaMap()), httpClient); - - given(httpClient.call(any(HttpRequest.class))) - .willReturn(Mono.just(response)); - - // when - StepVerifier - .create(cut.getAaiResponse(aaiModel)) - .expectNext(response) - .verifyComplete(); - - //then - verify(httpClient) - .call(argThat(httpRequest -> httpRequest.customHeaders().equals(headers))); - } - - @Test - void getAaiResponse_shouldCallGetMethod_withProperUri() { - - // given - AaiClientConfiguration configuration = secureConfiguration(); - String uri = constructAaiUri(configuration, aaiModel.getCorrelationId()); - AaiHttpGetClient cut = new AaiHttpGetClient(configuration, httpClient); - - given(httpClient.call(any(HttpRequest.class))) - .willReturn(Mono.just(response)); - - // when - StepVerifier - .create(cut.getAaiResponse(aaiModel)) - .expectNext(response) - .verifyComplete(); - - // then - verify(httpClient) - .call(argThat(httpRequest -> httpRequest.url().equals(uri))); - } -} diff --git a/prh-commons/src/test/java/org/onap/dcaegen2/services/prh/adapter/aai/patch/AaiHttpPatchClientTest.java b/prh-commons/src/test/java/org/onap/dcaegen2/services/prh/adapter/aai/patch/AaiHttpPatchClientTest.java deleted file mode 100644 index 6493b567..00000000 --- a/prh-commons/src/test/java/org/onap/dcaegen2/services/prh/adapter/aai/patch/AaiHttpPatchClientTest.java +++ /dev/null @@ -1,95 +0,0 @@ -/* - * ============LICENSE_START======================================================= - * DCAEGEN2-SERVICES-SDK - * ================================================================================ - * Copyright (C) 2019 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.adapter.aai.patch; - -import static org.mockito.ArgumentMatchers.any; -import static org.mockito.ArgumentMatchers.argThat; -import static org.mockito.ArgumentMatchers.eq; -import static org.mockito.BDDMockito.given; -import static org.mockito.Mockito.verify; -import static org.onap.dcaegen2.services.prh.adapter.aai.AaiClientConfigurations.secureConfiguration; - -import io.vavr.collection.HashMap; -import io.vavr.collection.Map; -import org.junit.jupiter.api.Test; -import org.onap.dcaegen2.services.prh.adapter.aai.AbstractHttpClientTest; -import org.onap.dcaegen2.services.prh.adapter.aai.api.AaiClientConfiguration; -import org.onap.dcaegen2.services.prh.adapter.aai.api.patch.AaiHttpPatchClient; -import org.onap.dcaegen2.services.sdk.rest.services.adapters.http.HttpRequest; -import reactor.core.publisher.Mono; -import reactor.test.StepVerifier; - -class AaiHttpPatchClientTest extends AbstractHttpClientTest { - - private final Map DEFAULT_PATCH_HEADERS = - HashMap.of("Content-Type", "application/merge-patch+json"); - - @Test - void getAaiResponse_shouldCallPatchMethod_withGivenHeaders_combinedWithContentType() { - - // given - Map headers = HashMap.of("sample-key", "sample-value"); - Map expectedHeaders = DEFAULT_PATCH_HEADERS.merge(headers); - - AaiHttpPatchClient cut = - new AaiHttpPatchClient(secureConfiguration(headers.toJavaMap()), bodyBuilder, httpClient); - - given(bodyBuilder.createJsonBody(eq(aaiModel))) - .willReturn("test-body"); - - given(httpClient.call(any(HttpRequest.class))) - .willReturn(Mono.just(response)); - - // when - StepVerifier - .create(cut.getAaiResponse(aaiModel)) - .expectNext(response) - .verifyComplete(); - - // then - verify(httpClient) - .call(argThat(httpRequest -> httpRequest.customHeaders().equals(expectedHeaders))); - } - - @Test - void getAaiResponse_shouldCallPatchMethod_withProperUri() { - - // given - AaiClientConfiguration configuration = secureConfiguration(); - String uri = constructAaiUri(configuration, aaiModel.getCorrelationId()); - AaiHttpPatchClient cut = new AaiHttpPatchClient(configuration, bodyBuilder, httpClient); - - given(bodyBuilder.createJsonBody(eq(aaiModel))) - .willReturn("test-body"); - - given(httpClient.call(any(HttpRequest.class))) - .willReturn(Mono.just(response)); - - // when - StepVerifier - .create(cut.getAaiResponse(aaiModel)) - .expectNext(response) - .verifyComplete(); - - // then - verify(httpClient) - .call(argThat(httpRequest -> httpRequest.url().equals(uri))); - } -} -- cgit 1.2.3-korg