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;
19 public class ChangeManagementServiceImplTest {
22 DataAccessService dataAccessServiceMock;
25 MsoBusinessLogic msoBusinessLogicMock;
28 SchedulerRestInterfaceIfc schedulerRestInterface;
31 public void initMocks(){
32 MockitoAnnotations.initMocks(this);
36 public void doChangeManagement_requestIsNull_returnsNull() throws Exception {
37 ChangeManagementServiceImpl changeManagementService = new ChangeManagementServiceImpl(dataAccessServiceMock, msoBusinessLogicMock, schedulerRestInterface);
38 ResponseEntity<String> result = changeManagementService.doChangeManagement(null,"anyString");
43 public void doChangeManagement_currentRequestDetailsIsNull_returnsNull() throws Exception {
44 ChangeManagementServiceImpl changeManagementService = new ChangeManagementServiceImpl(dataAccessServiceMock, msoBusinessLogicMock, schedulerRestInterface);
46 ChangeManagementServiceImpl changeManagementServiceSpied = Mockito.spy(changeManagementService);
47 Mockito.doReturn(null).when(changeManagementServiceSpied).findRequestByVnfName(Matchers.anyList(),Mockito.anyString());
49 ResponseEntity<String> result = changeManagementServiceSpied.doChangeManagement(null,"anyString");
56 public void doChangeManagement_requestTypeIsUpdate_MsoUpdateVnfIsCalled() throws Exception {
57 Mockito.doReturn(Mockito.mock(MsoResponseWrapperInterface.class)).when(msoBusinessLogicMock).updateVnf(Mockito.any(),Mockito.any(),Mockito.any());
58 RequestDetails requestDetails = callChangeManagement(ChangeManagementRequest.UPDATE);
60 ArgumentCaptor<RequestDetails> argumentCaptor = ArgumentCaptor.forClass(RequestDetails.class);
61 verify(msoBusinessLogicMock).updateVnf(argumentCaptor.capture(),Mockito.any(),Mockito.any());
62 assertEquals(argumentCaptor.getValue().getVnfInstanceId(),requestDetails.getVnfInstanceId());
66 public void doChangeManagement_requestTypeIsReplace_MsoUpdateVnfIsCalled() throws Exception {
67 Mockito.doReturn(Mockito.mock(MsoResponseWrapperInterface.class)).when(msoBusinessLogicMock).replaceVnf(Mockito.any(),Mockito.any(),Mockito.any());
68 RequestDetails requestDetails = callChangeManagement(ChangeManagementRequest.REPLACE);
71 ArgumentCaptor<RequestDetails> argumentCaptor = ArgumentCaptor.forClass(RequestDetails.class);
73 verify(msoBusinessLogicMock).replaceVnf(argumentCaptor.capture(),Mockito.any(),Mockito.any());
74 assertEquals(argumentCaptor.getValue().getVnfInstanceId(),requestDetails.getVnfInstanceId());
78 public void doChangeManagement_requestTypeIsInPlaceSoftwareUpdate_MsoUpdateVnfIsCalled() throws Exception {
79 Mockito.doReturn(Mockito.mock(MsoResponseWrapperInterface.class)).when(msoBusinessLogicMock).updateVnfSoftware(Mockito.any(),Mockito.any(),Mockito.any());
80 RequestDetails requestDetails = callChangeManagement(ChangeManagementRequest.VNF_IN_PLACE_SOFTWARE_UPDATE);
83 ArgumentCaptor<RequestDetails> argumentCaptor = ArgumentCaptor.forClass(RequestDetails.class);
85 verify(msoBusinessLogicMock).updateVnfSoftware(argumentCaptor.capture(),Mockito.any(),Mockito.any());
86 assertEquals(argumentCaptor.getValue().getVnfInstanceId(),requestDetails.getVnfInstanceId());
90 public void doChangeManagement_requestTypeIsConfigUpdate_MsoUpdateVnfIsCalled() throws Exception {
91 Mockito.doReturn(Mockito.mock(MsoResponseWrapperInterface.class)).when(msoBusinessLogicMock).updateVnfConfig(Mockito.any(),Mockito.any(),Mockito.any());
92 RequestDetails requestDetails = callChangeManagement(ChangeManagementRequest.CONFIG_UPDATE);
95 ArgumentCaptor<RequestDetails> argumentCaptor = ArgumentCaptor.forClass(RequestDetails.class);
97 verify(msoBusinessLogicMock).updateVnfConfig(argumentCaptor.capture(),Mockito.any(),Mockito.any());
98 assertEquals(argumentCaptor.getValue().getVnfInstanceId(),requestDetails.getVnfInstanceId());
101 private RequestDetails callChangeManagement(String requestType) throws Exception {
102 ChangeManagementServiceImpl changeManagementService = new ChangeManagementServiceImpl(dataAccessServiceMock, msoBusinessLogicMock, schedulerRestInterface);
103 ChangeManagementServiceImpl changeManagementServiceSpied = Mockito.spy(changeManagementService);
104 ChangeManagementRequest updateRequest = new ChangeManagementRequest();
106 updateRequest.setRequestType(requestType);
107 RequestDetails requestDetails = new RequestDetails();
108 requestDetails.setVnfInstanceId("vnfFakeId");
109 Mockito.doReturn("fakeId").when(changeManagementServiceSpied).extractServiceInstanceId(Mockito.any(),Mockito.any());
110 Mockito.doReturn(requestDetails).when(changeManagementServiceSpied).findRequestByVnfName(Matchers.any(),Mockito.any());
112 changeManagementServiceSpied.doChangeManagement(updateRequest,"anyVnfName");
114 return requestDetails;