00d9e1735b2029872f85cb1ed283656e2ceb48e0
[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 @Test
19 public class ChangeManagementServiceImplTest {
20
21     @Mock
22     DataAccessService dataAccessServiceMock;
23
24     @Mock
25     MsoBusinessLogic msoBusinessLogicMock;
26
27     @Mock
28     SchedulerRestInterfaceIfc schedulerRestInterface;
29
30     @BeforeMethod
31     public void initMocks(){
32         MockitoAnnotations.initMocks(this);
33     }
34
35     @Test
36     public void doChangeManagement_requestIsNull_returnsNull() throws Exception {
37         ChangeManagementServiceImpl changeManagementService = new ChangeManagementServiceImpl(dataAccessServiceMock, msoBusinessLogicMock, schedulerRestInterface);
38         ResponseEntity<String> result = changeManagementService.doChangeManagement(null,"anyString");
39         assertNull(result);
40     }
41
42     @Test
43     public void doChangeManagement_currentRequestDetailsIsNull_returnsNull() throws Exception {
44         ChangeManagementServiceImpl changeManagementService = new ChangeManagementServiceImpl(dataAccessServiceMock, msoBusinessLogicMock, schedulerRestInterface);
45
46         ChangeManagementServiceImpl changeManagementServiceSpied = Mockito.spy(changeManagementService);
47         Mockito.doReturn(null).when(changeManagementServiceSpied).findRequestByVnfName(Matchers.anyList(),Mockito.anyString());
48
49         ResponseEntity<String> result = changeManagementServiceSpied.doChangeManagement(null,"anyString");
50
51         assertNull(result);
52     }
53
54
55     @Test
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);
59
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());
63     }
64
65     @Test
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);
69
70
71         ArgumentCaptor<RequestDetails> argumentCaptor = ArgumentCaptor.forClass(RequestDetails.class);
72
73         verify(msoBusinessLogicMock).replaceVnf(argumentCaptor.capture(),Mockito.any(),Mockito.any());
74         assertEquals(argumentCaptor.getValue().getVnfInstanceId(),requestDetails.getVnfInstanceId());
75     }
76
77     @Test
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);
81
82
83         ArgumentCaptor<RequestDetails> argumentCaptor = ArgumentCaptor.forClass(RequestDetails.class);
84
85         verify(msoBusinessLogicMock).updateVnfSoftware(argumentCaptor.capture(),Mockito.any(),Mockito.any());
86         assertEquals(argumentCaptor.getValue().getVnfInstanceId(),requestDetails.getVnfInstanceId());
87     }
88
89     @Test
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);
93
94
95         ArgumentCaptor<RequestDetails> argumentCaptor = ArgumentCaptor.forClass(RequestDetails.class);
96
97         verify(msoBusinessLogicMock).updateVnfConfig(argumentCaptor.capture(),Mockito.any(),Mockito.any());
98         assertEquals(argumentCaptor.getValue().getVnfInstanceId(),requestDetails.getVnfInstanceId());
99     }
100
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();
105
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());
111
112         changeManagementServiceSpied.doChangeManagement(updateRequest,"anyVnfName");
113
114         return requestDetails;
115     }
116 }