2 * ============LICENSE_START=======================================================
4 * ================================================================================
5 * Copyright (C) 2017 - 2019 AT&T 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
11 * http://www.apache.org/licenses/LICENSE-2.0
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=========================================================
21 package org.onap.vid.services;
24 import org.onap.portalsdk.core.service.DataAccessService;
25 import org.onap.vid.changeManagement.ChangeManagementRequest;
26 import org.onap.vid.changeManagement.RequestDetails;
27 import org.onap.vid.mso.MsoBusinessLogic;
28 import org.onap.vid.mso.MsoResponseWrapperInterface;
29 import org.onap.vid.scheduler.SchedulerRestInterfaceIfc;
30 import org.onap.vid.utils.SystemPropertiesWrapper;
31 import org.springframework.http.ResponseEntity;
32 import org.testng.annotations.BeforeMethod;
33 import org.testng.annotations.Test;
35 import static org.mockito.Mockito.verify;
36 import static org.testng.Assert.assertEquals;
37 import static org.testng.Assert.assertNull;
39 public class ChangeManagementServiceImplTest {
42 private DataAccessService dataAccessServiceMock;
45 private MsoBusinessLogic msoBusinessLogicMock;
48 private SchedulerRestInterfaceIfc schedulerRestInterface;
51 private CloudOwnerService cloudOwnerService;
54 private SystemPropertiesWrapper systemPropertiesWrapper;
57 public void initMocks(){
58 MockitoAnnotations.initMocks(this);
62 public void doChangeManagement_requestIsNull_returnsNull() throws Exception {
63 ChangeManagementServiceImpl changeManagementService = new ChangeManagementServiceImpl(dataAccessServiceMock, msoBusinessLogicMock, schedulerRestInterface, cloudOwnerService, systemPropertiesWrapper);
64 ResponseEntity<String> result = changeManagementService.doChangeManagement(null,"anyString");
69 public void doChangeManagement_currentRequestDetailsIsNull_returnsNull() throws Exception {
70 ChangeManagementServiceImpl changeManagementService = new ChangeManagementServiceImpl(dataAccessServiceMock, msoBusinessLogicMock, schedulerRestInterface, cloudOwnerService,systemPropertiesWrapper);
72 ChangeManagementServiceImpl changeManagementServiceSpied = Mockito.spy(changeManagementService);
73 Mockito.doReturn(null).when(changeManagementServiceSpied).findRequestByVnfName(Matchers.anyList(),Mockito.anyString());
75 ResponseEntity<String> result = changeManagementServiceSpied.doChangeManagement(null,"anyString");
82 public void doChangeManagement_requestTypeIsUpdate_MsoUpdateVnfIsCalled() throws Exception {
83 Mockito.doReturn(Mockito.mock(MsoResponseWrapperInterface.class)).when(msoBusinessLogicMock).updateVnf(Mockito.any(),Mockito.any(),Mockito.any());
84 RequestDetails requestDetails = callChangeManagement(ChangeManagementRequest.UPDATE);
86 ArgumentCaptor<RequestDetails> argumentCaptor = ArgumentCaptor.forClass(RequestDetails.class);
87 verify(msoBusinessLogicMock).updateVnf(argumentCaptor.capture(),Mockito.any(),Mockito.any());
88 assertEquals(argumentCaptor.getValue().getVnfInstanceId(), requestDetails.getVnfInstanceId());
92 public void doChangeManagement_requestTypeIsReplace_MsoUpdateVnfIsCalled() throws Exception {
93 Mockito.doReturn(Mockito.mock(MsoResponseWrapperInterface.class)).when(msoBusinessLogicMock).replaceVnf(Mockito.any(),Mockito.any(),Mockito.any());
94 RequestDetails requestDetails = callChangeManagement(ChangeManagementRequest.REPLACE);
97 ArgumentCaptor<RequestDetails> argumentCaptor = ArgumentCaptor.forClass(RequestDetails.class);
99 verify(msoBusinessLogicMock).replaceVnf(argumentCaptor.capture(),Mockito.any(),Mockito.any());
100 assertEquals(argumentCaptor.getValue().getVnfInstanceId(), requestDetails.getVnfInstanceId());
104 public void doChangeManagement_requestTypeIsInPlaceSoftwareUpdate_MsoUpdateVnfIsCalled() throws Exception {
105 Mockito.doReturn(Mockito.mock(MsoResponseWrapperInterface.class)).when(msoBusinessLogicMock).updateVnfSoftware(Mockito.any(),Mockito.any(),Mockito.any());
106 RequestDetails requestDetails = callChangeManagement(ChangeManagementRequest.VNF_IN_PLACE_SOFTWARE_UPDATE);
109 ArgumentCaptor<RequestDetails> argumentCaptor = ArgumentCaptor.forClass(RequestDetails.class);
111 verify(msoBusinessLogicMock).updateVnfSoftware(argumentCaptor.capture(),Mockito.any(),Mockito.any());
112 assertEquals(argumentCaptor.getValue().getVnfInstanceId(), requestDetails.getVnfInstanceId());
116 public void doChangeManagement_requestTypeIsConfigUpdate_MsoUpdateVnfIsCalled() throws Exception {
117 Mockito.doReturn(Mockito.mock(MsoResponseWrapperInterface.class)).when(msoBusinessLogicMock).updateVnfConfig(Mockito.any(),Mockito.any(),Mockito.any());
118 RequestDetails requestDetails = callChangeManagement(ChangeManagementRequest.CONFIG_UPDATE);
121 ArgumentCaptor<RequestDetails> argumentCaptor = ArgumentCaptor.forClass(RequestDetails.class);
123 verify(msoBusinessLogicMock).updateVnfConfig(argumentCaptor.capture(),Mockito.any(),Mockito.any());
124 assertEquals(argumentCaptor.getValue().getVnfInstanceId(), requestDetails.getVnfInstanceId());
127 private RequestDetails callChangeManagement(String requestType) throws Exception {
128 ChangeManagementServiceImpl changeManagementService = new ChangeManagementServiceImpl(dataAccessServiceMock, msoBusinessLogicMock, schedulerRestInterface, cloudOwnerService,systemPropertiesWrapper);
129 ChangeManagementServiceImpl changeManagementServiceSpied = Mockito.spy(changeManagementService);
130 ChangeManagementRequest updateRequest = new ChangeManagementRequest();
132 updateRequest.setRequestType(requestType);
133 RequestDetails requestDetails = new RequestDetails();
134 requestDetails.setVnfInstanceId("vnfFakeId");
135 Mockito.doReturn("fakeId").when(changeManagementServiceSpied).extractServiceInstanceId(Mockito.any(),Mockito.any());
136 Mockito.doReturn(requestDetails).when(changeManagementServiceSpied).findRequestByVnfName(Matchers.any(),Mockito.any());
138 changeManagementServiceSpied.doChangeManagement(updateRequest, "anyVnfName");
140 return requestDetails;