2 * ============LICENSE_START=======================================================
4 * ================================================================================
5 * Copyright (C) 2017 - 2019 AT&T Intellectual Property. All rights reserved.
6 * Modifications Copyright (C) 2018 - 2019 Nokia. All rights reserved.
7 * ================================================================================
8 * Licensed under the Apache License, Version 2.0 (the "License");
9 * you may not use this file except in compliance with the License.
10 * You may obtain a copy of the License at
12 * http://www.apache.org/licenses/LICENSE-2.0
14 * Unless required by applicable law or agreed to in writing, software
15 * distributed under the License is distributed on an "AS IS" BASIS,
16 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17 * See the License for the specific language governing permissions and
18 * limitations under the License.
19 * ============LICENSE_END=========================================================
21 package org.onap.vid.mso.rest;
23 import static org.assertj.core.api.Assertions.assertThat;
24 import static org.hamcrest.Matchers.allOf;
25 import static org.hamcrest.Matchers.hasEntry;
26 import static org.mockito.ArgumentMatchers.any;
27 import static org.mockito.ArgumentMatchers.anyMap;
28 import static org.mockito.ArgumentMatchers.eq;
29 import static org.mockito.Mockito.when;
30 import static org.mockito.MockitoAnnotations.initMocks;
32 import io.joshworks.restclient.http.HttpResponse;
33 import io.joshworks.restclient.http.JsonMapper;
34 import org.apache.http.ProtocolVersion;
35 import org.apache.http.StatusLine;
36 import org.apache.http.message.BasicHttpResponse;
37 import org.apache.http.message.BasicStatusLine;
38 import org.jetbrains.annotations.NotNull;
39 import org.mockito.Mock;
40 import org.onap.portalsdk.core.util.SystemProperties;
41 import org.onap.vid.changeManagement.RequestDetailsWrapper;
42 import org.onap.vid.changeManagement.RequestParameters;
43 import org.onap.vid.changeManagement.WorkflowRequestDetail;
44 import org.onap.vid.client.SyncRestClient;
45 import org.onap.vid.controller.LocalWebConfig;
46 import org.onap.vid.model.RequestReferencesContainer;
47 import org.onap.vid.mso.MsoResponseWrapper;
48 import org.onap.vid.mso.MsoResponseWrapperInterface;
49 import org.onap.vid.mso.MsoUtil;
50 import org.onap.vid.mso.RestObject;
51 import org.onap.vid.mso.model.CloudConfiguration;
52 import org.onap.vid.mso.model.RequestReferences;
53 import org.springframework.test.context.ContextConfiguration;
54 import org.springframework.test.context.web.WebAppConfiguration;
55 import org.testng.annotations.BeforeClass;
56 import org.testng.annotations.Test;
58 import java.util.ArrayList;
59 import java.util.HashMap;
60 import java.util.List;
62 import java.util.UUID;
64 import static org.mockito.ArgumentMatchers.refEq;
65 import static org.mockito.hamcrest.MockitoHamcrest.argThat;
68 @ContextConfiguration(classes = {LocalWebConfig.class, SystemProperties.class})
70 public class MsoRestClientTest {
73 private final String baseUrl = "http://testURL/";
76 private SyncRestClient client;
79 private MsoRestClientNew restClient;
85 restClient = new MsoRestClientNew(client,baseUrl,null);
90 public void shouldProperlyCreateServiceInstance() {
92 RequestDetails requestDetails = MsoRestClientTestUtil.generateMockMsoRequest();
94 String endpoint = "testEndpoint";
95 HttpResponse<String> httpResponse = HttpResponse.fallback("testOkResponse");
96 MsoResponseWrapper expectedResponse = MsoUtil.wrapResponse(httpResponse);
98 when( client.post( eq(baseUrl+endpoint),anyMap(),eq(requestDetails),eq(String.class) ) ).thenReturn(httpResponse);
101 MsoResponseWrapper response = restClient.createSvcInstance(requestDetails,endpoint);
104 assertThat(response).isEqualToComparingFieldByField(expectedResponse);
107 @Test( expectedExceptions = MsoTestException.class)
108 public void shouldThrowExceptionWhenCreateSvcInstanceGetsWrongParameters() {
110 String endpoint = "";
112 when( client.post( eq(baseUrl+endpoint),anyMap(),eq(null),eq(String.class) ) ).
113 thenThrow(new MsoTestException("test-post-exception"));
116 restClient.createSvcInstance(null,endpoint);
120 public void shouldProperlyCreateE2eSvcInstance() {
122 RequestDetails requestDetails = MsoRestClientTestUtil.generateMockMsoRequest();
124 String endpoint = "testEndpoint";
125 HttpResponse<String> httpResponse = HttpResponse.fallback("testOkResponse");
126 MsoResponseWrapper expectedResponse = MsoUtil.wrapResponse(httpResponse);
128 when( client.post( eq(baseUrl+endpoint),anyMap(),eq(requestDetails),eq(String.class) ) ).thenReturn(httpResponse);
131 MsoResponseWrapper response = restClient.createE2eSvcInstance(requestDetails,endpoint);
134 assertThat(response).isEqualToComparingFieldByField(expectedResponse);
138 public void shouldProperlyCreateVnf() {
140 RequestDetails requestDetails = MsoRestClientTestUtil.generateMockMsoRequest();
142 String endpoint = "testEndpoint";
143 HttpResponse<String> httpResponse = HttpResponse.fallback("testOkResponse");
144 MsoResponseWrapper expectedResponse = MsoUtil.wrapResponse(httpResponse);
146 when( client.post( eq(baseUrl+endpoint),anyMap(),eq(requestDetails),eq(String.class) ) ).thenReturn(httpResponse);
149 MsoResponseWrapper response = restClient.createVnf(requestDetails,endpoint);
152 assertThat(response).isEqualToComparingFieldByField(expectedResponse);
156 public void shouldProperlyCreateNwInstance() {
158 RequestDetails requestDetails = MsoRestClientTestUtil.generateMockMsoRequest();
160 String endpoint = "testEndpoint";
161 HttpResponse<String> httpResponse = HttpResponse.fallback("testOkResponse");
162 MsoResponseWrapper expectedResponse = MsoUtil.wrapResponse(httpResponse);
164 when( client.post( eq(baseUrl+endpoint),anyMap(),eq(requestDetails),eq(String.class) ) ).thenReturn(httpResponse);
167 MsoResponseWrapper response = restClient.createNwInstance(requestDetails,endpoint);
170 assertThat(response).isEqualToComparingFieldByField(expectedResponse);
174 public void shouldProperlyCreateVolumeGroupInstance() {
176 RequestDetails requestDetails = MsoRestClientTestUtil.generateMockMsoRequest();
178 String endpoint = "testEndpoint";
179 HttpResponse<String> httpResponse = HttpResponse.fallback("testOkResponse");
180 MsoResponseWrapper expectedResponse = MsoUtil.wrapResponse(httpResponse);
182 when( client.post( eq(baseUrl+endpoint),anyMap(),eq(requestDetails),eq(String.class) ) ).thenReturn(httpResponse);
185 MsoResponseWrapper response = restClient.createVolumeGroupInstance(requestDetails,endpoint);
188 assertThat(response).isEqualToComparingFieldByField(expectedResponse);
192 public void shouldProperlyCreateVfModuleInstance() {
194 RequestDetails requestDetails = MsoRestClientTestUtil.generateMockMsoRequest();
196 String endpoint = "testEndpoint";
197 HttpResponse<String> httpResponse = HttpResponse.fallback("testOkResponse");
198 MsoResponseWrapper expectedResponse = MsoUtil.wrapResponse(httpResponse);
200 when( client.post( eq(baseUrl+endpoint),anyMap(),eq(requestDetails),eq(String.class) ) ).thenReturn(httpResponse);
203 MsoResponseWrapper response = restClient.createVfModuleInstance(requestDetails,endpoint);
206 assertThat(response).isEqualToComparingFieldByField(expectedResponse);
210 public void shouldProperlyScaleOutVFModuleInstance() {
212 RequestDetails requestDetails = MsoRestClientTestUtil.generateMockMsoRequest();
214 RequestDetailsWrapper<RequestDetails> wrappedRequestDetails = new RequestDetailsWrapper<>(requestDetails);
215 String endpoint = "testEndpoint";
216 HttpResponse<String> httpResponse = HttpResponse.fallback("testOkResponse");
217 MsoResponseWrapper expectedResponse = MsoUtil.wrapResponse(httpResponse);
219 when( client.post( eq(baseUrl+endpoint),anyMap(),eq(wrappedRequestDetails),eq(String.class) ) ).thenReturn(httpResponse);
222 MsoResponseWrapper response = restClient.scaleOutVFModuleInstance(wrappedRequestDetails,endpoint);
225 assertThat(response).isEqualToComparingFieldByField(expectedResponse);
229 public void shouldProperlyCreateConfigurationInstance() {
231 RequestDetails requestDetails = MsoRestClientTestUtil.generateMockMsoRequest();
233 org.onap.vid.mso.rest.RequestDetailsWrapper wrappedRequestDetails = new org.onap.vid.mso.rest.RequestDetailsWrapper(requestDetails);
234 String endpoint = "testEndpoint";
235 HttpResponse<String> httpResponse = HttpResponse.fallback("testOkResponse");
236 MsoResponseWrapper expectedResponse = MsoUtil.wrapResponse(httpResponse);
238 when( client.post( eq(baseUrl+endpoint),anyMap(),eq(wrappedRequestDetails),eq(String.class) ) ).thenReturn(httpResponse);
241 MsoResponseWrapper response = restClient.createConfigurationInstance(wrappedRequestDetails,endpoint);
244 assertThat(response).isEqualToComparingFieldByField(expectedResponse);
248 public void shouldProperlyDeleteE2eSvcInstance() {
250 RequestDetails requestDetails = MsoRestClientTestUtil.generateMockMsoRequest();
252 org.onap.vid.mso.rest.RequestDetailsWrapper wrappedRequestDetails = new org.onap.vid.mso.rest.RequestDetailsWrapper(requestDetails);
253 String endpoint = "testEndpoint";
254 HttpResponse<String> httpResponse = HttpResponse.fallback("testOkResponse");
255 MsoResponseWrapper expectedResponse = MsoUtil.wrapResponse(httpResponse);
257 when( client.delete( eq(baseUrl+endpoint),anyMap(),eq(wrappedRequestDetails),eq(String.class) ) ).thenReturn(httpResponse);
260 MsoResponseWrapper response = restClient.deleteE2eSvcInstance(wrappedRequestDetails,endpoint);
263 assertThat(response).isEqualToComparingFieldByField(expectedResponse);
267 public void shouldProperlyDeleteSvcInstance() {
269 RequestDetails requestDetails = MsoRestClientTestUtil.generateMockMsoRequest();
271 String endpoint = "testEndpoint";
272 HttpResponse<String> httpResponse = HttpResponse.fallback("testOkResponse");
273 MsoResponseWrapper expectedResponse = MsoUtil.wrapResponse(httpResponse);
275 when( client.delete( eq(baseUrl+endpoint),anyMap(),eq(requestDetails),eq(String.class) ) ).thenReturn(httpResponse);
278 MsoResponseWrapper response = restClient.deleteSvcInstance(requestDetails,endpoint);
281 assertThat(response).isEqualToComparingFieldByField(expectedResponse);
285 public void shouldProperlyUnassignSvcInstance() {
287 RequestDetails requestDetails = MsoRestClientTestUtil.generateMockMsoRequest();
289 String endpoint = "testEndpoint";
290 HttpResponse<String> httpResponse = HttpResponse.fallback("testOkResponse");
291 MsoResponseWrapper expectedResponse = MsoUtil.wrapResponse(httpResponse);
293 when( client.post( eq(baseUrl+endpoint),anyMap(),eq(requestDetails),eq(String.class) ) ).thenReturn(httpResponse);
296 MsoResponseWrapper response = restClient.unassignSvcInstance(requestDetails,endpoint);
299 assertThat(response).isEqualToComparingFieldByField(expectedResponse);
303 public void shouldProperlyDeleteVnf() {
305 RequestDetails requestDetails = MsoRestClientTestUtil.generateMockMsoRequest();
307 String endpoint = "testEndpoint";
308 HttpResponse<String> httpResponse = HttpResponse.fallback("testOkResponse");
309 MsoResponseWrapper expectedResponse = MsoUtil.wrapResponse(httpResponse);
311 when( client.delete( eq(baseUrl+endpoint),anyMap(),eq(requestDetails),eq(String.class) ) ).thenReturn(httpResponse);
314 MsoResponseWrapper response = restClient.deleteVnf(requestDetails,endpoint);
317 assertThat(response).isEqualToComparingFieldByField(expectedResponse);
321 public void shouldProperlyDeleteVfModule() {
323 RequestDetails requestDetails = MsoRestClientTestUtil.generateMockMsoRequest();
325 String endpoint = "testEndpoint";
326 HttpResponse<String> httpResponse = HttpResponse.fallback("testOkResponse");
327 MsoResponseWrapper expectedResponse = MsoUtil.wrapResponse(httpResponse);
329 when( client.delete( eq(baseUrl+endpoint),anyMap(),eq(requestDetails),eq(String.class) ) ).thenReturn(httpResponse);
332 MsoResponseWrapper response = restClient.deleteVfModule(requestDetails,endpoint);
335 assertThat(response).isEqualToComparingFieldByField(expectedResponse);
339 public void shouldProperlyDeleteVolumeGroupInstance() {
341 RequestDetails requestDetails = MsoRestClientTestUtil.generateMockMsoRequest();
343 String endpoint = "testEndpoint";
344 HttpResponse<String> httpResponse = HttpResponse.fallback("testOkResponse");
345 MsoResponseWrapper expectedResponse = MsoUtil.wrapResponse(httpResponse);
347 when( client.delete( eq(baseUrl+endpoint),anyMap(),eq(requestDetails),eq(String.class) ) ).thenReturn(httpResponse);
350 MsoResponseWrapper response = restClient.deleteVolumeGroupInstance(requestDetails,endpoint);
353 assertThat(response).isEqualToComparingFieldByField(expectedResponse);
357 public void shouldProperlyDeleteNwInstance() {
359 RequestDetails requestDetails = MsoRestClientTestUtil.generateMockMsoRequest();
361 String endpoint = "testEndpoint";
362 HttpResponse<String> httpResponse = HttpResponse.fallback("testOkResponse");
363 MsoResponseWrapper expectedResponse = MsoUtil.wrapResponse(httpResponse);
365 when( client.delete( eq(baseUrl+endpoint),anyMap(),eq(requestDetails),eq(String.class) ) ).thenReturn(httpResponse);
368 MsoResponseWrapper response = restClient.deleteNwInstance(requestDetails,endpoint);
371 assertThat(response).isEqualToComparingFieldByField(expectedResponse);
375 public void shouldProperlyGetOrchestrationRequest() {
377 RestObject restObject = generateMockMsoRestObject();
379 String endpoint = "testEndpoint";
380 HttpResponse<String> httpResponse = HttpResponse.fallback("testOkResponse");
381 MsoResponseWrapper expectedResponse = MsoUtil.wrapResponse(httpResponse);
383 when( client.get( eq(baseUrl+endpoint),anyMap(),anyMap(),eq(String.class) ) ).thenReturn(httpResponse);
386 MsoResponseWrapper response = restClient.getOrchestrationRequest(null,null,endpoint,restObject,true);
389 assertThat(response).isEqualToComparingFieldByField(expectedResponse);
393 public void shouldProperlyGetOrchestrationRequestWithOnlyEndpoint() {
395 String endpoint = "testEndpoint";
396 HttpResponse<String> httpResponse = HttpResponse.fallback("testOkResponse");
397 MsoResponseWrapper expectedResponse = MsoUtil.wrapResponse(httpResponse);
399 when( client.get( eq(baseUrl+endpoint),anyMap(),anyMap(),eq(String.class) ) ).thenReturn(httpResponse);
402 MsoResponseWrapper response = restClient.getOrchestrationRequest(endpoint);
405 assertThat(response).isEqualToComparingFieldByField(expectedResponse);
409 public void shouldProperlyGetManualTasksByRequestId() {
411 RestObject restObject = generateMockMsoRestObject();
413 String endpoint = "testEndpoint";
414 HttpResponse<String> httpResponse = HttpResponse.fallback("testOkResponse");
415 MsoResponseWrapper expectedResponse = MsoUtil.wrapResponse(httpResponse);
417 when( client.get( eq(baseUrl+endpoint),anyMap(),anyMap(),eq(String.class) ) ).thenReturn(httpResponse);
420 MsoResponseWrapper response = restClient.getManualTasksByRequestId(null,null,endpoint,restObject);
423 assertThat(response).isEqualToComparingFieldByField(expectedResponse);
426 @Test(expectedExceptions = MsoTestException.class)
427 public void shouldThrowExceptionWhenGetManualTasksByRequestIdGetsWrongParameter() {
429 when( client.get( eq(baseUrl),anyMap(),anyMap(),eq(String.class) ) ).thenThrow(new MsoTestException("testsException"));
432 restClient.getManualTasksByRequestId(null,null,"",null);
436 public void shouldProperlyCompleteManualTask() {
438 RequestDetails requestDetails = MsoRestClientTestUtil.generateMockMsoRequest();
439 RestObject restObject = generateMockMsoRestObject();
441 String endpoint = "testEndpoint";
442 HttpResponse<String> httpResponse = HttpResponse.fallback("testOkResponse");
443 MsoResponseWrapper expectedResponse = MsoUtil.wrapResponse(httpResponse);
445 when( client.post( eq(baseUrl+endpoint), anyMap(), eq(requestDetails), eq(String.class) ) ).thenReturn(httpResponse);
448 MsoResponseWrapper response = restClient.completeManualTask(requestDetails,null,null,endpoint,restObject);
451 assertThat(response).isEqualToComparingFieldByField(expectedResponse);
454 @Test(expectedExceptions = MsoTestException.class)
455 public void shouldThrowExceptionWhenCompleteManualTaskWrongParameter() {
457 when( client.post( eq(baseUrl),anyMap(),eq(null), eq(String.class) ) ).thenThrow(new MsoTestException("testsException"));
460 restClient.completeManualTask(null, null,null,"",null);
464 public void shouldProperlyReplaceVnf() {
466 org.onap.vid.changeManagement.RequestDetails requestDetails = MsoRestClientTestUtil.generateChangeManagementMockMsoRequest();
468 String endpoint = "testEndpoint";
469 HttpResponse<String> httpResponse = HttpResponse.fallback("testOkResponse");
470 MsoResponseWrapper expectedResponse = MsoUtil.wrapResponse(httpResponse);
472 when( client.post( eq(baseUrl+endpoint), anyMap(), any(RequestDetailsWrapper.class), eq(String.class) ) ).thenReturn(httpResponse);
475 MsoResponseWrapper response = restClient.replaceVnf(requestDetails,endpoint);
478 assertThat(response).isEqualToComparingFieldByField(expectedResponse);
482 public void shouldProperlyReplaceVnfWithStatus202() {
484 org.onap.vid.changeManagement.RequestDetails requestDetails = MsoRestClientTestUtil.generateChangeManagementMockMsoRequest();
486 String endpoint = "testEndpoint";
487 HttpResponse<String> httpResponse = createOkResponse();
488 MsoResponseWrapper expectedResponse = MsoUtil.wrapResponse(httpResponse);
490 when( client.post( eq(baseUrl+endpoint), anyMap(), any(RequestDetailsWrapper.class), eq(String.class) ) ).thenReturn(httpResponse);
493 MsoResponseWrapper response = restClient.replaceVnf(requestDetails,endpoint);
496 assertThat(response).isEqualToComparingFieldByField(expectedResponse);
499 @Test( expectedExceptions = MsoTestException.class)
500 public void shouldThrowExceptionWhenReplaceVnfGetsWrongParameters() {
502 org.onap.vid.changeManagement.RequestDetails requestDetails = MsoRestClientTestUtil.generateChangeManagementMockMsoRequest();
504 when( client.post( eq(baseUrl), anyMap(), any(RequestDetailsWrapper.class), eq(String.class) ) ).thenThrow(new MsoTestException("test-post-exception"));
507 restClient.replaceVnf(requestDetails, "");
511 public void shouldProperlyDeleteConfiguration() {
513 org.onap.vid.changeManagement.RequestDetails requestDetails = MsoRestClientTestUtil.generateChangeManagementMockMsoRequest();
514 org.onap.vid.mso.rest.RequestDetailsWrapper requestDetailsWrapper = new org.onap.vid.mso.rest.RequestDetailsWrapper(requestDetails);
516 String endpoint = "testEndpoint";
517 HttpResponse<String> httpResponse = HttpResponse.fallback("testOkResponse");
518 MsoResponseWrapper expectedResponse = MsoUtil.wrapResponse(httpResponse);
520 when( client.delete( eq(baseUrl+endpoint), anyMap(), eq(requestDetailsWrapper), eq(String.class) ) ).thenReturn(httpResponse);
523 MsoResponseWrapper response = restClient.deleteConfiguration(requestDetailsWrapper,endpoint);
526 assertThat(response).isEqualToComparingFieldByField(expectedResponse);
529 @Test( expectedExceptions = MsoTestException.class )
530 public void shouldThrowExceptionWhenProperlyDeleteConfigurationGetsWrongParameters() {
532 when( client.delete( eq(baseUrl), anyMap(), eq(null), eq(String.class) ) ).thenThrow(new MsoTestException("test-delete-exception"));
535 restClient.deleteConfiguration(null,"");
539 public void shouldProperlySetConfigurationActiveStatus() {
541 RequestDetails requestDetails = MsoRestClientTestUtil.generateMockMsoRequest();
543 String endpoint = "testEndpoint";
544 HttpResponse<String> httpResponse = HttpResponse.fallback("testOkResponse");
545 MsoResponseWrapper expectedResponse = MsoUtil.wrapResponse(httpResponse);
547 when(client.post(eq(baseUrl + endpoint), anyMap(), eq(requestDetails), eq(String.class))).thenReturn(httpResponse);
550 MsoResponseWrapper response = restClient.setConfigurationActiveStatus(requestDetails, endpoint);
553 assertThat(expectedResponse).isEqualToComparingFieldByField(response);
556 @Test(expectedExceptions = MsoTestException.class)
557 public void shouldThrowExceptionWhenSetConfigurationActiveStatusGetsWrongParameters() {
560 when(client.post(eq(baseUrl), anyMap(), eq(null), eq(String.class))).thenThrow(new MsoTestException("test-post-exception"));
563 restClient.setConfigurationActiveStatus(null, "");
567 public void shouldProperlySetPortOnConfigurationStatus() {
569 RequestDetails requestDetails = MsoRestClientTestUtil.generateMockMsoRequest();
571 String endpoint = "testEndpoint";
572 HttpResponse<String> httpResponse = HttpResponse.fallback("testOkResponse");
573 MsoResponseWrapper expectedResponse = MsoUtil.wrapResponse(httpResponse);
575 when(client.post(eq(baseUrl + endpoint), anyMap(), eq(requestDetails), eq(String.class))).thenReturn(httpResponse);
578 MsoResponseWrapper response = restClient.setPortOnConfigurationStatus(requestDetails, endpoint);
581 assertThat(expectedResponse).isEqualToComparingFieldByField(response);
584 @Test(expectedExceptions = MsoTestException.class)
585 public void shouldThrowExceptionWhenSetPortOnConfigurationStatusGetsWrongParameters() {
587 String endpoint = "";
589 when(client.post(eq(baseUrl), anyMap(), eq(null), eq(String.class))).thenThrow(new MsoTestException("test-post-exception"));
592 restClient.setPortOnConfigurationStatus(null, endpoint);
596 public void shouldProperlyChangeManagementUpdate() {
598 RequestDetails requestDetails = MsoRestClientTestUtil.generateMockMsoRequest();
599 RequestDetailsWrapper<RequestDetails> requestDetailsWrapper = new RequestDetailsWrapper<>(requestDetails);
601 String endpoint = "testEndpoint";
602 HttpResponse<RequestReferencesContainer> httpResponse = HttpResponse.fallback(
603 new RequestReferencesContainer(
604 new RequestReferences()));
606 MsoResponseWrapperInterface expectedResponse = MsoUtil.wrapResponse(httpResponse);
608 when(client.post(eq(baseUrl + endpoint), anyMap(), eq(requestDetailsWrapper), eq(RequestReferencesContainer.class))).thenReturn(httpResponse);
611 MsoResponseWrapperInterface response = restClient.changeManagementUpdate(requestDetailsWrapper, endpoint);
614 assertThat(expectedResponse).isEqualToComparingFieldByField(response);
618 public void shouldProperlyUpdateVnfAndUpdateInstance() {
620 org.onap.vid.changeManagement.RequestDetails requestDetails = MsoRestClientTestUtil.generateChangeManagementMockMsoRequest();
622 String endpoint = "testEndpoint";
623 HttpResponse<String> httpResponse = HttpResponse.fallback("testOkResponse");
624 MsoResponseWrapperInterface expectedResponse = MsoUtil.wrapResponse(httpResponse);
627 when(client.put(eq(baseUrl + endpoint), anyMap(), any(RequestDetailsWrapper.class), eq(String.class))).thenReturn(httpResponse);
630 MsoResponseWrapperInterface response = restClient.updateVnf(requestDetails, endpoint);
633 assertThat(expectedResponse).isEqualToComparingFieldByField(response);
636 @Test( expectedExceptions = MsoTestException.class )
637 public void shouldThrowExceptionWhenUpdateVnfAndUpdateInstanceGetsWrongParameter() {
639 org.onap.vid.changeManagement.RequestDetails requestDetails = MsoRestClientTestUtil.generateChangeManagementMockMsoRequest();
640 String endpoint = "";
642 when(client.put(eq(baseUrl), anyMap(), any(RequestDetailsWrapper.class), eq(String.class))).thenThrow(new MsoTestException("test-post-exception"));
645 restClient.updateVnf(requestDetails, endpoint);
651 public void shouldProperlySetServiceInstanceStatus() {
653 RequestDetails requestDetails = MsoRestClientTestUtil.generateMockMsoRequest();
654 RestObject<String> restObject = generateMockMsoRestObject();
656 String endpoint = "testEndpoint";
657 HttpResponse<String> httpResponse = HttpResponse.fallback("testOkResponse");
659 when(client.post(eq(baseUrl + endpoint), anyMap(), eq(requestDetails), eq(String.class))).thenReturn(httpResponse);
662 restClient.setServiceInstanceStatus(requestDetails,"", "", endpoint, restObject);
665 @Test( expectedExceptions = MsoTestException.class)
666 public void shouldThrowExceptionWhenSetServiceInstanceStatusGetsWrongParameter() {
668 String endpoint = "";
670 when(client.post(eq(baseUrl), anyMap(), eq(null), eq(String.class))).thenThrow(new MsoTestException("test-post-exception"));
673 restClient.setServiceInstanceStatus(null,"", "", endpoint, null);
677 public void shouldProperlyRemoveRelationshipFromServiceInstance() {
679 RequestDetails requestDetails = MsoRestClientTestUtil.generateMockMsoRequest();
681 String endpoint = "testEndpoint";
682 HttpResponse<String> httpResponse = HttpResponse.fallback("testOkResponse");
683 MsoResponseWrapper expectedResponse = MsoUtil.wrapResponse(httpResponse);
685 when(client.post(eq(baseUrl + endpoint), anyMap(), eq(requestDetails), eq(String.class))).thenReturn(httpResponse);
688 MsoResponseWrapper response = restClient.removeRelationshipFromServiceInstance(requestDetails, endpoint);
691 assertThat(expectedResponse).isEqualToComparingFieldByField(response);
694 @Test( expectedExceptions = MsoTestException.class)
695 public void shouldThrowExceptionWhenRemoveRelationshipFromServiceInstanceGetsWrongParameter() {
697 String endpoint = "";
699 when(client.post(eq(baseUrl), anyMap(), eq(null), eq(String.class))).thenThrow(new MsoTestException("test-post-exception"));
702 restClient.removeRelationshipFromServiceInstance(null,endpoint);
706 public void shouldProperlyAddRelationshipToServiceInstance() {
708 RequestDetails requestDetails = MsoRestClientTestUtil.generateMockMsoRequest();
710 String endpoint = "testEndpoint";
711 HttpResponse<String> httpResponse = HttpResponse.fallback("testOkResponse");
712 MsoResponseWrapper expectedResponse = MsoUtil.wrapResponse(httpResponse);
714 when(client.post(eq(baseUrl + endpoint), anyMap(), eq(requestDetails), eq(String.class))).thenReturn(httpResponse);
717 MsoResponseWrapper response = restClient.addRelationshipToServiceInstance(requestDetails, endpoint);
720 assertThat(expectedResponse).isEqualToComparingFieldByField(response);
723 @Test( expectedExceptions = MsoTestException.class)
724 public void shouldThrowExceptionWhenAddRelationshipToServiceInstanceGetsWrongParameter() {
726 String endpoint = "";
728 when(client.post(eq(baseUrl), anyMap(), eq(null), eq(String.class))).thenThrow(new MsoTestException("test-post-exception"));
731 restClient.addRelationshipToServiceInstance(null,endpoint);
735 public void shouldProperlyPerformGetRequest() {
737 String endpoint = "testEndpoint";
738 HttpResponse<String> expectedResponse = HttpResponse.fallback("testOkResponse");
740 when(client.get(eq(baseUrl + endpoint), anyMap(), anyMap(), eq(String.class))).thenReturn(expectedResponse);
743 HttpResponse<String> response = restClient.get(endpoint, String.class);
746 assertThat(expectedResponse).isEqualToComparingFieldByField(response);
750 public void shouldProperlyPerformPostRequest() {
753 RequestDetailsWrapper<RequestDetails> requestDetailsWrapper = new RequestDetailsWrapper<>(MsoRestClientTestUtil.generateMockMsoRequest());
755 String endpoint = "testEndpoint";
756 HttpResponse<String> expectedResponse = HttpResponse.fallback("testOkResponse");
758 when(client.post(eq(baseUrl + endpoint), anyMap(), eq(requestDetailsWrapper), eq(String.class))).thenReturn(expectedResponse);
761 HttpResponse<String> response = restClient.post(endpoint,requestDetailsWrapper, String.class);
764 assertThat(expectedResponse).isEqualToComparingFieldByField(response);
768 public void shouldProperlyInvokeWorkflows() {
770 String endpoint = "testPath";
771 HttpResponse expectedResponse = createOkResponse();
773 WorkflowRequestDetail workflowRequestDetail = MsoRestClientTestUtil.createWorkflowRequestDetail();
775 RequestDetailsWrapper<WorkflowRequestDetail> requestDetailsWrapper = new RequestDetailsWrapper<>(workflowRequestDetail);
777 UUID requestId = UUID.randomUUID();
779 when(client.post(eq(baseUrl + endpoint), argThat(allOf(hasEntry("X-ONAP-RequestID", requestId.toString()),hasEntry("Content-Type", "application/json"))), refEq(requestDetailsWrapper))).
780 thenReturn(expectedResponse);
782 Map<String,String> extraHeaders = new HashMap<>();
783 extraHeaders.put("X-ONAP-RequestID",requestId.toString());
784 extraHeaders.put("X-ONAP-PartnerName","VID");
785 extraHeaders.put("X-RequestorID","testRequester");
788 MsoResponseWrapper response = restClient.invokeWorkflow(workflowRequestDetail, endpoint, extraHeaders);
791 assertThat(response).isEqualToComparingFieldByField(MsoUtil.wrapResponse(expectedResponse));
795 private class MsoTestException extends RuntimeException{
796 MsoTestException(String testException) {
797 super(testException);
801 private HttpResponse<String> createOkResponse() {
802 StatusLine statusline = new BasicStatusLine(
803 new ProtocolVersion("http",1,1), 202, "acceptResponse");
805 org.apache.http.HttpResponse responseBase = new BasicHttpResponse(statusline);
807 return new HttpResponse<>(responseBase ,String.class, new JsonMapper());
810 private RestObject<String> generateMockMsoRestObject() {
811 RestObject<String> restObject = new RestObject<>();
813 restObject.set("test-rest-object-body");
814 restObject.setRaw("test-rest-object-raw-string");
815 restObject.setStatusCode(202);