Merge from ECOMP's repository
[vid.git] / vid-app-common / src / test / java / org / onap / vid / services / ChangeManagementServiceImplTest.java
1 package org.onap.vid.services;
2
3 import org.mockito.*;
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;
13
14 import static org.mockito.Mockito.verify;
15 import static org.testng.Assert.assertEquals;
16 import static org.testng.Assert.assertNull;
17
18 public class ChangeManagementServiceImplTest {
19
20     @Mock
21     DataAccessService dataAccessServiceMock;
22
23     @Mock
24     MsoBusinessLogic msoBusinessLogicMock;
25
26     @Mock
27     SchedulerRestInterfaceIfc schedulerRestInterface;
28
29     @Mock
30     CloudOwnerService cloudOwnerService;
31
32     @BeforeMethod
33     public void initMocks(){
34         MockitoAnnotations.initMocks(this);
35     }
36
37     @Test
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");
41         assertNull(result);
42     }
43
44     @Test
45     public void doChangeManagement_currentRequestDetailsIsNull_returnsNull() throws Exception {
46         ChangeManagementServiceImpl changeManagementService = new ChangeManagementServiceImpl(dataAccessServiceMock, msoBusinessLogicMock, schedulerRestInterface, cloudOwnerService);
47
48         ChangeManagementServiceImpl changeManagementServiceSpied = Mockito.spy(changeManagementService);
49         Mockito.doReturn(null).when(changeManagementServiceSpied).findRequestByVnfName(Matchers.anyList(),Mockito.anyString());
50
51         ResponseEntity<String> result = changeManagementServiceSpied.doChangeManagement(null,"anyString");
52
53         assertNull(result);
54     }
55
56
57     @Test
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);
61
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());
65     }
66
67     @Test
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);
71
72
73         ArgumentCaptor<RequestDetails> argumentCaptor = ArgumentCaptor.forClass(RequestDetails.class);
74
75         verify(msoBusinessLogicMock).replaceVnf(argumentCaptor.capture(),Mockito.any(),Mockito.any());
76         assertEquals(argumentCaptor.getValue().getVnfInstanceId(), requestDetails.getVnfInstanceId());
77     }
78
79     @Test
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);
83
84
85         ArgumentCaptor<RequestDetails> argumentCaptor = ArgumentCaptor.forClass(RequestDetails.class);
86
87         verify(msoBusinessLogicMock).updateVnfSoftware(argumentCaptor.capture(),Mockito.any(),Mockito.any());
88         assertEquals(argumentCaptor.getValue().getVnfInstanceId(), requestDetails.getVnfInstanceId());
89     }
90
91     @Test
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);
95
96
97         ArgumentCaptor<RequestDetails> argumentCaptor = ArgumentCaptor.forClass(RequestDetails.class);
98
99         verify(msoBusinessLogicMock).updateVnfConfig(argumentCaptor.capture(),Mockito.any(),Mockito.any());
100         assertEquals(argumentCaptor.getValue().getVnfInstanceId(), requestDetails.getVnfInstanceId());
101     }
102
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();
107
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());
113
114         changeManagementServiceSpied.doChangeManagement(updateRequest, "anyVnfName");
115
116         return requestDetails;
117     }
118 }