+++ /dev/null
-/*-
- * ============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.put;
-
-import static org.onap.dcaegen2.services.prh.adapter.aai.main.AaiHttpClientFactory.createRequestDiagnosticContext;
-
-import io.vavr.collection.HashMap;
-import org.onap.dcaegen2.services.prh.adapter.aai.api.AaiClientConfiguration;
-import org.onap.dcaegen2.services.prh.adapter.aai.api.AaiHttpClient;
-import org.onap.dcaegen2.services.prh.adapter.aai.model.AaiModel;
-import org.onap.dcaegen2.services.prh.adapter.aai.model.JsonBodyBuilder;
-import org.onap.dcaegen2.services.sdk.rest.services.adapters.http.HttpMethod;
-import org.onap.dcaegen2.services.sdk.rest.services.adapters.http.HttpResponse;
-import org.onap.dcaegen2.services.sdk.rest.services.adapters.http.ImmutableHttpRequest;
-import org.onap.dcaegen2.services.sdk.rest.services.adapters.http.RequestBody;
-import org.onap.dcaegen2.services.sdk.rest.services.adapters.http.RxHttpClient;
-import reactor.core.publisher.Mono;
-
-public class AaiHttpPutClient implements AaiHttpClient<AaiModel, HttpResponse> {
-
- private RxHttpClient httpClient;
- private final AaiClientConfiguration configuration;
- private final JsonBodyBuilder jsonBodyBuilder;
- private final String uri;
-
- public AaiHttpPutClient(final AaiClientConfiguration configuration, JsonBodyBuilder jsonBodyBuilder, String uri,
- RxHttpClient httpClient) {
- this.configuration = configuration;
- this.jsonBodyBuilder = jsonBodyBuilder;
- this.uri = uri;
- this.httpClient = httpClient;
- }
-
- @Override
- public Mono<HttpResponse> getAaiResponse(AaiModel aaiModel) {
- String jsonBody = jsonBodyBuilder.createJsonBody(aaiModel);
-
- return httpClient.call(ImmutableHttpRequest.builder()
- .url(uri)
- .customHeaders(HashMap.ofAll(configuration.aaiHeaders()))
- .diagnosticContext(createRequestDiagnosticContext())
- .body(RequestBody.fromString(jsonBody))
- .method(HttpMethod.PUT)
- .build());
- }
-}
* ============LICENSE_START=======================================================
* DCAEGEN2-SERVICES-SDK
* ================================================================================
- * Copyright (C) 2018 NOKIA Intellectual Property. All rights reserved.
+ * 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.
package org.onap.dcaegen2.services.prh.adapter.aai.model;
@FunctionalInterface
-public interface AaiModel extends ClientModel {
+public interface AaiModel {
String getCorrelationId();
}
* ============LICENSE_START=======================================================
* DCAEGEN2-SERVICES-SDK
* ================================================================================
- * Copyright (C) 2018 NOKIA Intellectual Property. All rights reserved.
+ * 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.
@Value.Style(stagedBuilder = true)
@Value.Immutable
-public interface AaiServiceInstanceQueryModel extends ClientModel {
+public interface AaiServiceInstanceQueryModel {
String customerId();
String serviceType();
String serviceInstanceId();
+++ /dev/null
-/*
- * ============LICENSE_START=======================================================
- * DCAEGEN2-SERVICES-SDK
- * ================================================================================
- * 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.adapter.aai.model;
-
-public interface ClientModel {
-}
+++ /dev/null
-/*
- * ============LICENSE_START=======================================================
- * DCAEGEN2-SERVICES-SDK
- * ================================================================================
- * 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.adapter.aai.model;
-
-public interface DmaapModel extends ClientModel {
-}
* ============LICENSE_START=======================================================
* DCAEGEN2-SERVICES-SDK
* ================================================================================
- * Copyright (C) 2018 NOKIA Intellectual Property. All rights reserved.
+ * 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.
package org.onap.dcaegen2.services.prh.adapter.aai.model;
@FunctionalInterface
-public interface JsonBodyBuilder<T extends ClientModel> {
+public interface JsonBodyBuilder<T> {
/**
* Method for serialization object by GSON.
* ============LICENSE_START=======================================================
* PNF-REGISTRATION-HANDLER
* ================================================================================
- * Copyright (C) 2018 NOKIA Intellectual Property. All rights reserved.
+ * 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.
import org.immutables.gson.Gson;
import org.immutables.value.Value;
import org.onap.dcaegen2.services.prh.adapter.aai.model.AaiModel;
-import org.onap.dcaegen2.services.prh.adapter.aai.model.DmaapModel;
import org.springframework.lang.Nullable;
/**
@Value.Immutable
@Gson.TypeAdapters(fieldNamingStrategy = true)
-public interface ConsumerDmaapModel extends AaiModel, DmaapModel {
+public interface ConsumerDmaapModel extends AaiModel {
@SerializedName(value = "correlationId", alternate = "correlationId")
String getCorrelationId();
import com.google.gson.annotations.SerializedName;
import org.immutables.gson.Gson;
import org.immutables.value.Value;
-import org.onap.dcaegen2.services.prh.adapter.aai.model.ClientModel;
import org.onap.dcaegen2.services.prh.model.ImmutableRelationship;
import org.onap.dcaegen2.services.prh.model.Relationship;
import org.springframework.lang.Nullable;
@Value.Immutable
@Gson.TypeAdapters(fieldNamingStrategy = true)
-public interface LogicalLink extends ClientModel {
+public interface LogicalLink {
@SerializedName(value = "link-name")
String getLinkName();
+++ /dev/null
-/*
- * ============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.put;
-
-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.put.AaiHttpPutClient;
-import org.onap.dcaegen2.services.sdk.rest.services.adapters.http.HttpRequest;
-import reactor.core.publisher.Mono;
-import reactor.test.StepVerifier;
-
-class AaiHttpPutClientTest extends AbstractHttpClientTest {
-
- @Test
- void getAaiResponse_shouldCallPutMethod_withGivenAaiHeaders() {
- Map<String, String> headers = HashMap.of("sample-key", "sample-value");
- AaiHttpPutClient cut = new AaiHttpPutClient(secureConfiguration(headers.toJavaMap()), bodyBuilder, "",
- httpClient);
-
- given(bodyBuilder.createJsonBody(eq(aaiModel)))
- .willReturn("test-body");
-
- given(httpClient.call(any(HttpRequest.class)))
- .willReturn(Mono.just(response));
-
- StepVerifier
- .create(cut.getAaiResponse(aaiModel))
- .expectNext(response)
- .verifyComplete();
-
- verify(httpClient)
- .call(argThat(httpRequest -> httpRequest.customHeaders().equals(headers)));
- }
-
- @Test
- void getAaiResponse_shouldCallPutMethod_withProperUri() {
- String uri = "test-uri";
- AaiHttpPutClient cut = new AaiHttpPutClient(secureConfiguration(), bodyBuilder, uri, httpClient);
-
- given(bodyBuilder.createJsonBody(eq(aaiModel)))
- .willReturn("test-body");
-
- given(httpClient.call(any(HttpRequest.class)))
- .willReturn(Mono.just(response));
-
- StepVerifier
- .create(cut.getAaiResponse(aaiModel))
- .expectNext(response)
- .verifyComplete();
-
- verify(httpClient)
- .call(argThat(httpRequest -> httpRequest.url().equals(uri)));
-
- }
-}