1dddc27e5f81c515f71311d4f7722e195cc94f5d
[dcaegen2/services/sdk.git] /
1 /*
2  * ============LICENSE_START=======================================================
3  * DCAEGEN2-SERVICES-SDK
4  * ================================================================================
5  * Copyright (C) 2019 NOKIA Intellectual Property. All rights reserved.
6  * ================================================================================
7  * Licensed under the Apache License, Version 2.0 (the "License");
8  * you may not use this file except in compliance with the License.
9  * You may obtain a copy of the License at
10  *
11  *      http://www.apache.org/licenses/LICENSE-2.0
12  *
13  * Unless required by applicable law or agreed to in writing, software
14  * distributed under the License is distributed on an "AS IS" BASIS,
15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16  * See the License for the specific language governing permissions and
17  * limitations under the License.
18  * ============LICENSE_END=========================================================
19  */
20 package org.onap.dcaegen2.services.sdk.rest.services.aai.client.service.http.get;
21
22 import static org.mockito.ArgumentMatchers.any;
23 import static org.mockito.ArgumentMatchers.anyMap;
24 import static org.mockito.ArgumentMatchers.anyString;
25 import static org.mockito.ArgumentMatchers.eq;
26 import static org.mockito.BDDMockito.given;
27 import static org.mockito.Mockito.verify;
28 import static org.onap.dcaegen2.services.sdk.rest.services.aai.client.AaiClientConfigurations.secureConfiguration;
29
30 import java.util.HashMap;
31 import java.util.Map;
32 import org.junit.jupiter.api.Test;
33 import org.onap.dcaegen2.services.sdk.rest.services.aai.client.config.AaiClientConfiguration;
34 import org.onap.dcaegen2.services.sdk.rest.services.aai.client.service.http.AbstractHttpClientTest;
35 import org.onap.dcaegen2.services.sdk.rest.services.model.logging.RequestDiagnosticContext;
36 import reactor.core.publisher.Mono;
37 import reactor.test.StepVerifier;
38
39 class AaiHttpGetClientTest extends AbstractHttpClientTest {
40
41     @Test
42     void getAaiResponse_shouldCallGetMethod_withGivenAaiHeaders() {
43         Map<String, String> headers = new HashMap<>();
44         AaiHttpGetClient cut = new AaiHttpGetClient(secureConfiguration(headers), httpClient);
45
46         given(httpClient.get(
47                 anyString(),
48                 any(RequestDiagnosticContext.class),
49                 anyMap()
50         )).willReturn(Mono.just(response));
51
52         StepVerifier
53                 .create(cut.getAaiResponse(aaiModel))
54                 .expectNext(response)
55                 .verifyComplete();
56
57         verify(httpClient).get(
58                 anyString(),
59                 any(RequestDiagnosticContext.class),
60                 eq(headers)
61         );
62     }
63
64     @Test
65     void getAaiResponse_shouldCallGetMethod_withProperUri() {
66         AaiClientConfiguration configuration = secureConfiguration();
67         String expectedUri = constructAaiUri(configuration, aaiModel.getCorrelationId());
68         AaiHttpGetClient cut = new AaiHttpGetClient(configuration, httpClient);
69
70         given(httpClient.get(
71                 anyString(),
72                 any(RequestDiagnosticContext.class),
73                 anyMap()
74         )).willReturn(Mono.just(response));
75
76         StepVerifier
77                 .create(cut.getAaiResponse(aaiModel))
78                 .expectNext(response)
79                 .verifyComplete();
80
81         verify(httpClient).get(
82                 eq(expectedUri),
83                 any(RequestDiagnosticContext.class),
84                 anyMap()
85         );
86     }
87 }