1 package org.onap.vid.services;
4 import org.onap.portalsdk.core.service.DataAccessService;
5 import org.onap.vid.changeManagement.ChangeManagementRequest;
6 import org.onap.vid.changeManagement.RequestDetails;
7 import org.onap.vid.mso.MsoBusinessLogic;
8 import org.onap.vid.mso.MsoResponseWrapperInterface;
9 import org.onap.vid.scheduler.SchedulerRestInterfaceIfc;
10 import org.springframework.http.ResponseEntity;
11 import org.testng.annotations.BeforeMethod;
12 import org.testng.annotations.Test;
14 import static org.mockito.Mockito.verify;
15 import static org.testng.Assert.assertEquals;
16 import static org.testng.Assert.assertNull;
18 public class ChangeManagementServiceImplTest {
21 DataAccessService dataAccessServiceMock;
24 MsoBusinessLogic msoBusinessLogicMock;
27 SchedulerRestInterfaceIfc schedulerRestInterface;
30 CloudOwnerService cloudOwnerService;
33 public void initMocks(){
34 MockitoAnnotations.initMocks(this);
38 public void doChangeManagement_requestIsNull_returnsNull() throws Exception {
39 ChangeManagementServiceImpl changeManagementService = new ChangeManagementServiceImpl(dataAccessServiceMock, msoBusinessLogicMock, schedulerRestInterface, cloudOwnerService);
40 ResponseEntity<String> result = changeManagementService.doChangeManagement(null,"anyString");
45 public void doChangeManagement_currentRequestDetailsIsNull_returnsNull() throws Exception {
46 ChangeManagementServiceImpl changeManagementService = new ChangeManagementServiceImpl(dataAccessServiceMock, msoBusinessLogicMock, schedulerRestInterface, cloudOwnerService);
48 ChangeManagementServiceImpl changeManagementServiceSpied = Mockito.spy(changeManagementService);
49 Mockito.doReturn(null).when(changeManagementServiceSpied).findRequestByVnfName(Matchers.anyList(),Mockito.anyString());
51 ResponseEntity<String> result = changeManagementServiceSpied.doChangeManagement(null,"anyString");
58 public void doChangeManagement_requestTypeIsUpdate_MsoUpdateVnfIsCalled() throws Exception {
59 Mockito.doReturn(Mockito.mock(MsoResponseWrapperInterface.class)).when(msoBusinessLogicMock).updateVnf(Mockito.any(),Mockito.any(),Mockito.any());
60 RequestDetails requestDetails = callChangeManagement(ChangeManagementRequest.UPDATE);
62 ArgumentCaptor<RequestDetails> argumentCaptor = ArgumentCaptor.forClass(RequestDetails.class);
63 verify(msoBusinessLogicMock).updateVnf(argumentCaptor.capture(),Mockito.any(),Mockito.any());
64 assertEquals(argumentCaptor.getValue().getVnfInstanceId(), requestDetails.getVnfInstanceId());
68 public void doChangeManagement_requestTypeIsReplace_MsoUpdateVnfIsCalled() throws Exception {
69 Mockito.doReturn(Mockito.mock(MsoResponseWrapperInterface.class)).when(msoBusinessLogicMock).replaceVnf(Mockito.any(),Mockito.any(),Mockito.any());
70 RequestDetails requestDetails = callChangeManagement(ChangeManagementRequest.REPLACE);
73 ArgumentCaptor<RequestDetails> argumentCaptor = ArgumentCaptor.forClass(RequestDetails.class);
75 verify(msoBusinessLogicMock).replaceVnf(argumentCaptor.capture(),Mockito.any(),Mockito.any());
76 assertEquals(argumentCaptor.getValue().getVnfInstanceId(), requestDetails.getVnfInstanceId());
80 public void doChangeManagement_requestTypeIsInPlaceSoftwareUpdate_MsoUpdateVnfIsCalled() throws Exception {
81 Mockito.doReturn(Mockito.mock(MsoResponseWrapperInterface.class)).when(msoBusinessLogicMock).updateVnfSoftware(Mockito.any(),Mockito.any(),Mockito.any());
82 RequestDetails requestDetails = callChangeManagement(ChangeManagementRequest.VNF_IN_PLACE_SOFTWARE_UPDATE);
85 ArgumentCaptor<RequestDetails> argumentCaptor = ArgumentCaptor.forClass(RequestDetails.class);
87 verify(msoBusinessLogicMock).updateVnfSoftware(argumentCaptor.capture(),Mockito.any(),Mockito.any());
88 assertEquals(argumentCaptor.getValue().getVnfInstanceId(), requestDetails.getVnfInstanceId());
92 public void doChangeManagement_requestTypeIsConfigUpdate_MsoUpdateVnfIsCalled() throws Exception {
93 Mockito.doReturn(Mockito.mock(MsoResponseWrapperInterface.class)).when(msoBusinessLogicMock).updateVnfConfig(Mockito.any(),Mockito.any(),Mockito.any());
94 RequestDetails requestDetails = callChangeManagement(ChangeManagementRequest.CONFIG_UPDATE);
97 ArgumentCaptor<RequestDetails> argumentCaptor = ArgumentCaptor.forClass(RequestDetails.class);
99 verify(msoBusinessLogicMock).updateVnfConfig(argumentCaptor.capture(),Mockito.any(),Mockito.any());
100 assertEquals(argumentCaptor.getValue().getVnfInstanceId(), requestDetails.getVnfInstanceId());
103 private RequestDetails callChangeManagement(String requestType) throws Exception {
104 ChangeManagementServiceImpl changeManagementService = new ChangeManagementServiceImpl(dataAccessServiceMock, msoBusinessLogicMock, schedulerRestInterface, cloudOwnerService);
105 ChangeManagementServiceImpl changeManagementServiceSpied = Mockito.spy(changeManagementService);
106 ChangeManagementRequest updateRequest = new ChangeManagementRequest();
108 updateRequest.setRequestType(requestType);
109 RequestDetails requestDetails = new RequestDetails();
110 requestDetails.setVnfInstanceId("vnfFakeId");
111 Mockito.doReturn("fakeId").when(changeManagementServiceSpied).extractServiceInstanceId(Mockito.any(),Mockito.any());
112 Mockito.doReturn(requestDetails).when(changeManagementServiceSpied).findRequestByVnfName(Matchers.any(),Mockito.any());
114 changeManagementServiceSpied.doChangeManagement(updateRequest, "anyVnfName");
116 return requestDetails;