Merge 1806 code of vid-common
[vid.git] / vid-app-common / src / test / java / org / onap / vid / mso / MsoBusinessLogicImplTest.java
1 package org.onap.vid.mso;
2
3 import org.mockito.InjectMocks;
4 import org.mockito.Mock;
5 import org.mockito.Mockito;
6 import org.mockito.MockitoAnnotations;
7 import org.onap.vid.mso.rest.RequestDetails;
8 import org.onap.vid.properties.Features;
9 import org.onap.portalsdk.core.util.SystemProperties;
10 import org.springframework.test.context.ContextConfiguration;
11 import org.springframework.test.context.testng.AbstractTestNGSpringContextTests;
12 import org.springframework.test.context.web.WebAppConfiguration;
13 import org.testng.Assert;
14 import org.testng.annotations.BeforeTest;
15 import org.testng.annotations.DataProvider;
16 import org.testng.annotations.Test;
17 import org.togglz.core.manager.FeatureManager;
18
19 import static org.mockito.Mockito.verify;
20 import static org.mockito.Mockito.when;
21 import static org.onap.vid.controllers.MsoController.SVC_INSTANCE_ID;
22 import static org.onap.vid.controllers.MsoController.VNF_INSTANCE_ID;
23 import static org.onap.vid.mso.MsoBusinessLogicImpl.validateEndpointPath;
24
25 @ContextConfiguration(classes = {SystemProperties.class})
26 @WebAppConfiguration
27 public class MsoBusinessLogicImplTest extends AbstractTestNGSpringContextTests {
28
29     @InjectMocks
30     private MsoBusinessLogicImpl msoBusinessLogic;
31
32     @Mock
33     private FeatureManager featureManagerMock;
34
35     @Mock
36     private MsoInterface msoInterfaceMock;
37
38
39     @BeforeTest
40     public void initMocks(){
41         MockitoAnnotations.initMocks(this);
42     }
43
44     @Test
45     public void validateEndpointPath_endPointIsNotEmptyAndVaild_returnProperty(){
46         System.setProperty("TestEnv","123");
47         String foundEndPoint = validateEndpointPath("TestEnv");
48         Assert.assertEquals("123",foundEndPoint);
49     }
50
51     @Test(expectedExceptions = RuntimeException.class)
52     public void validateEndpointPath_endPointIsNull_throwRuntimeException(){
53         validateEndpointPath("NotExists");
54     }
55
56     @Test(expectedExceptions = RuntimeException.class)
57     public void validateEndpointPath_endPointIsNotEmptyButDoesntExists_throwRuntimeException(){
58         System.setProperty("EmptyEndPoint","");
59         validateEndpointPath("EmptyEndPoint");
60     }
61
62
63     //@Test(dataProvider = "unAssignOrDeleteParams")
64     public void deleteSvcInstance_verifyEndPointPathConstructing_unAssignFeatureOffOrUnAssignFlagIsFalse(boolean isAssignFlag,String status) {
65         Mockito.reset(msoInterfaceMock);
66         String endpoint = validateEndpointPath(isAssignFlag ? MsoProperties.MSO_DELETE_OR_UNASSIGN_REST_API_SVC_INSTANCE : MsoProperties.MSO_REST_API_SVC_INSTANCE);
67         RequestDetails requestDetails = new RequestDetails();
68
69         when(featureManagerMock.isActive(Features.FLAG_UNASSIGN_SERVICE)).thenReturn(isAssignFlag);
70
71         msoBusinessLogic.deleteSvcInstance(requestDetails, "tempId", status);
72
73         verify(msoInterfaceMock).deleteSvcInstance(requestDetails, endpoint + "/tempId");
74     }
75
76     @DataProvider
77     public Object[][] unAssignOrDeleteParams() {
78         return new Object[][]{
79                 {Boolean.FALSE, "active"},
80                 {Boolean.FALSE, "created"},
81                 {Boolean.TRUE, "Active"},
82                 {Boolean.TRUE, "unexpected-status"},
83         };
84     }
85
86     //@Test(dataProvider = "unAssignStatus")
87     public void deleteSvcInstance_verifyEndPointPathConstructing_unAssignFeatureOnAndUnAssignFlagIsTrue(String status) {
88         Mockito.reset(msoInterfaceMock);
89         // in the test Features.FLAG_UNASSIGN_SERVICE is active so the endpoint should be MsoProperties.MSO_DELETE_OR_UNASSIGN_REST_API_SVC_INSTANCE
90         String endpoint = validateEndpointPath(MsoProperties.MSO_DELETE_OR_UNASSIGN_REST_API_SVC_INSTANCE);
91         RequestDetails requestDetails = new RequestDetails();
92
93         when(featureManagerMock.isActive(Features.FLAG_UNASSIGN_SERVICE)).thenReturn(true);
94
95         msoBusinessLogic.deleteSvcInstance(requestDetails, "tempId", status);
96
97         verify(msoInterfaceMock).unassignSvcInstance(requestDetails, endpoint + "/tempId/unassign");
98     }
99
100     @DataProvider
101     public Object[][] unAssignStatus() {
102         return new Object[][]{
103                 {"Created"},
104                 {"Pendingdelete"},
105                 {"pending-Delete"},
106                 {"Assigned"}
107         };
108     }
109
110     @Test
111     public void deleteVnf_verifyEndPointPathConstructing() {
112         String endpoint = validateEndpointPath(MsoProperties.MSO_REST_API_VNF_INSTANCE);
113         RequestDetails requestDetails = new RequestDetails();
114
115         String vnf_endpoint = endpoint.replaceFirst(SVC_INSTANCE_ID, "serviceInstanceTempId");
116
117         msoBusinessLogic.deleteVnf(requestDetails, "serviceInstanceTempId","vnfInstanceTempId");
118         verify(msoInterfaceMock).deleteVnf(requestDetails, vnf_endpoint + "/vnfInstanceTempId");
119     }
120
121     @Test
122     public void deleteVfModule_verifyEndPointPathConstructing() {
123         String endpoint = validateEndpointPath(MsoProperties.MSO_REST_API_VF_MODULE_INSTANCE);
124         RequestDetails requestDetails = new RequestDetails();
125
126         String vf__modules_endpoint = endpoint.replaceFirst(SVC_INSTANCE_ID, "serviceInstanceTempId").replaceFirst(VNF_INSTANCE_ID, "vnfInstanceTempId");
127
128         msoBusinessLogic.deleteVfModule(requestDetails, "serviceInstanceTempId","vnfInstanceTempId", "vfModuleTempId");
129         verify(msoInterfaceMock).deleteVfModule(requestDetails, vf__modules_endpoint + "/vfModuleTempId" );
130     }
131
132     @Test
133     public void insertServiceInstantiationToDB_StartJob() {
134
135 //        broker = new JobsBrokerServiceInDatabaseImpl(dataAccessServiceMock, sessionFactory);
136 //        ((JobsBrokerServiceInDatabaseImpl)broker).deleteAll();
137 //
138 ////        msoBusinessLogic.setDataAccessService(dataAccessServiceMock);
139 ////        msoBusinessLogic.setJobsBrokerService(broker);
140 ////        msoBusinessLogic.setJobAdapter(jobAdapter);
141 //
142 //        ServiceInstantiation serviceInstantiation = new ServiceInstantiation();
143 //        serviceInstantiation.setCount(2);
144 //        serviceInstantiation.setInstanceName("TestName");
145 //
146 //        msoBusinessLogic.pushBulkJob(serviceInstantiation, "testUserId");
147 //
148 //        List<ServiceInfo> serviceInfoList = dataAccessServiceMock.getList(ServiceInfo.class, null);
149 //        int k = 9;
150 //        Assert.assertEquals(serviceInstantiation, containsInAnyOrder(serviceInfoList.toArray()));
151     }
152 }
153