1 package org.onap.vid.mso;
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;
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;
25 @ContextConfiguration(classes = {SystemProperties.class})
27 public class MsoBusinessLogicImplTest extends AbstractTestNGSpringContextTests {
30 private MsoBusinessLogicImpl msoBusinessLogic;
33 private FeatureManager featureManagerMock;
36 private MsoInterface msoInterfaceMock;
40 public void initMocks(){
41 MockitoAnnotations.initMocks(this);
45 public void validateEndpointPath_endPointIsNotEmptyAndVaild_returnProperty(){
46 System.setProperty("TestEnv","123");
47 String foundEndPoint = validateEndpointPath("TestEnv");
48 Assert.assertEquals("123",foundEndPoint);
51 @Test(expectedExceptions = RuntimeException.class)
52 public void validateEndpointPath_endPointIsNull_throwRuntimeException(){
53 validateEndpointPath("NotExists");
56 @Test(expectedExceptions = RuntimeException.class)
57 public void validateEndpointPath_endPointIsNotEmptyButDoesntExists_throwRuntimeException(){
58 System.setProperty("EmptyEndPoint","");
59 validateEndpointPath("EmptyEndPoint");
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();
69 when(featureManagerMock.isActive(Features.FLAG_UNASSIGN_SERVICE)).thenReturn(isAssignFlag);
71 msoBusinessLogic.deleteSvcInstance(requestDetails, "tempId", status);
73 verify(msoInterfaceMock).deleteSvcInstance(requestDetails, endpoint + "/tempId");
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"},
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();
93 when(featureManagerMock.isActive(Features.FLAG_UNASSIGN_SERVICE)).thenReturn(true);
95 msoBusinessLogic.deleteSvcInstance(requestDetails, "tempId", status);
97 verify(msoInterfaceMock).unassignSvcInstance(requestDetails, endpoint + "/tempId/unassign");
101 public Object[][] unAssignStatus() {
102 return new Object[][]{
111 public void deleteVnf_verifyEndPointPathConstructing() {
112 String endpoint = validateEndpointPath(MsoProperties.MSO_REST_API_VNF_INSTANCE);
113 RequestDetails requestDetails = new RequestDetails();
115 String vnf_endpoint = endpoint.replaceFirst(SVC_INSTANCE_ID, "serviceInstanceTempId");
117 msoBusinessLogic.deleteVnf(requestDetails, "serviceInstanceTempId","vnfInstanceTempId");
118 verify(msoInterfaceMock).deleteVnf(requestDetails, vnf_endpoint + "/vnfInstanceTempId");
122 public void deleteVfModule_verifyEndPointPathConstructing() {
123 String endpoint = validateEndpointPath(MsoProperties.MSO_REST_API_VF_MODULE_INSTANCE);
124 RequestDetails requestDetails = new RequestDetails();
126 String vf__modules_endpoint = endpoint.replaceFirst(SVC_INSTANCE_ID, "serviceInstanceTempId").replaceFirst(VNF_INSTANCE_ID, "vnfInstanceTempId");
128 msoBusinessLogic.deleteVfModule(requestDetails, "serviceInstanceTempId","vnfInstanceTempId", "vfModuleTempId");
129 verify(msoInterfaceMock).deleteVfModule(requestDetails, vf__modules_endpoint + "/vfModuleTempId" );
133 public void insertServiceInstantiationToDB_StartJob() {
135 // broker = new JobsBrokerServiceInDatabaseImpl(dataAccessServiceMock, sessionFactory);
136 // ((JobsBrokerServiceInDatabaseImpl)broker).deleteAll();
138 //// msoBusinessLogic.setDataAccessService(dataAccessServiceMock);
139 //// msoBusinessLogic.setJobsBrokerService(broker);
140 //// msoBusinessLogic.setJobAdapter(jobAdapter);
142 // ServiceInstantiation serviceInstantiation = new ServiceInstantiation();
143 // serviceInstantiation.setCount(2);
144 // serviceInstantiation.setInstanceName("TestName");
146 // msoBusinessLogic.pushBulkJob(serviceInstantiation, "testUserId");
148 // List<ServiceInfo> serviceInfoList = dataAccessServiceMock.getList(ServiceInfo.class, null);
150 // Assert.assertEquals(serviceInstantiation, containsInAnyOrder(serviceInfoList.toArray()));