diff options
Diffstat (limited to 'vid-app-common/src/test/java/org/onap/vid/mso/MsoBusinessLogicImplTest.java')
-rw-r--r-- | vid-app-common/src/test/java/org/onap/vid/mso/MsoBusinessLogicImplTest.java | 127 |
1 files changed, 89 insertions, 38 deletions
diff --git a/vid-app-common/src/test/java/org/onap/vid/mso/MsoBusinessLogicImplTest.java b/vid-app-common/src/test/java/org/onap/vid/mso/MsoBusinessLogicImplTest.java index 36f4bdd43..54e924d95 100644 --- a/vid-app-common/src/test/java/org/onap/vid/mso/MsoBusinessLogicImplTest.java +++ b/vid-app-common/src/test/java/org/onap/vid/mso/MsoBusinessLogicImplTest.java @@ -1,12 +1,14 @@ package org.onap.vid.mso; -import org.mockito.InjectMocks; -import org.mockito.Mock; -import org.mockito.Mockito; -import org.mockito.MockitoAnnotations; +import com.fasterxml.jackson.core.type.TypeReference; +import com.fasterxml.jackson.databind.ObjectMapper; +import org.mockito.*; +import org.onap.portalsdk.core.util.SystemProperties; +import org.onap.vid.changeManagement.RequestDetailsWrapper; +import org.onap.vid.controllers.MsoController; +import org.onap.vid.mso.rest.Request; import org.onap.vid.mso.rest.RequestDetails; import org.onap.vid.properties.Features; -import org.onap.portalsdk.core.util.SystemProperties; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.testng.AbstractTestNGSpringContextTests; import org.springframework.test.context.web.WebAppConfiguration; @@ -16,16 +18,32 @@ import org.testng.annotations.DataProvider; import org.testng.annotations.Test; import org.togglz.core.manager.FeatureManager; -import static org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; +import java.io.IOException; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.Paths; +import java.util.List; +import java.util.stream.Collectors; + +import static org.assertj.core.api.Assertions.assertThat; +import static org.mockito.Matchers.eq; +import static org.mockito.Mockito.*; import static org.onap.vid.controllers.MsoController.SVC_INSTANCE_ID; -import static org.onap.vid.controllers.MsoController.VNF_INSTANCE_ID; import static org.onap.vid.mso.MsoBusinessLogicImpl.validateEndpointPath; @ContextConfiguration(classes = {SystemProperties.class}) @WebAppConfiguration public class MsoBusinessLogicImplTest extends AbstractTestNGSpringContextTests { + private static final String SERVICE_INSTANCE_ID = "1"; + private static final String VNF_INSTANCE_ID = "1"; + private static final String EXPECTED_SCALE_OUT_PATH = "/serviceInstantiation/v7/serviceInstances/1/vnfs/1/vfModules/scaleOut"; + private static final Path PATH_TO_NOT_PROCESSED_SCALE_OUT_REQUEST = Paths.get("src", "test", "resources", "payload_jsons", "scaleOutVfModulePayload.json"); + private static final Path PATH_TO_FINAL_SCALE_OUT_REQUEST = Paths.get("src", "test", "resources", "payload_jsons", "scaleOutVfModulePayloadToMso.json"); + private static final Path PATH_TO_EXPECTED_MSO_MODEL_TYPE_REQ = Paths.get("src", "test", "resources", "payload_jsons", "mso_model_info_sample_response.json"); + private static final Path PATH_TO_EXPECTED_MSO_SCALEOUT_REQ = Paths.get("src", "test", "resources", "payload_jsons", "mso_action_scaleout_sample_response.json"); + private static final ObjectMapper OBJECT_MAPPER = new ObjectMapper(); + @InjectMocks private MsoBusinessLogicImpl msoBusinessLogic; @@ -37,31 +55,31 @@ public class MsoBusinessLogicImplTest extends AbstractTestNGSpringContextTests { @BeforeTest - public void initMocks(){ + public void initMocks() { MockitoAnnotations.initMocks(this); } @Test - public void validateEndpointPath_endPointIsNotEmptyAndVaild_returnProperty(){ - System.setProperty("TestEnv","123"); + public void validateEndpointPath_endPointIsNotEmptyAndVaild_returnProperty() { + System.setProperty("TestEnv", "123"); String foundEndPoint = validateEndpointPath("TestEnv"); - Assert.assertEquals("123",foundEndPoint); + Assert.assertEquals("123", foundEndPoint); } @Test(expectedExceptions = RuntimeException.class) - public void validateEndpointPath_endPointIsNull_throwRuntimeException(){ + public void validateEndpointPath_endPointIsNull_throwRuntimeException() { validateEndpointPath("NotExists"); } @Test(expectedExceptions = RuntimeException.class) - public void validateEndpointPath_endPointIsNotEmptyButDoesntExists_throwRuntimeException(){ - System.setProperty("EmptyEndPoint",""); + public void validateEndpointPath_endPointIsNotEmptyButDoesntExists_throwRuntimeException() { + System.setProperty("EmptyEndPoint", ""); validateEndpointPath("EmptyEndPoint"); } //@Test(dataProvider = "unAssignOrDeleteParams") - public void deleteSvcInstance_verifyEndPointPathConstructing_unAssignFeatureOffOrUnAssignFlagIsFalse(boolean isAssignFlag,String status) { + public void deleteSvcInstance_verifyEndPointPathConstructing_unAssignFeatureOffOrUnAssignFlagIsFalse(boolean isAssignFlag, String status) { Mockito.reset(msoInterfaceMock); String endpoint = validateEndpointPath(isAssignFlag ? MsoProperties.MSO_DELETE_OR_UNASSIGN_REST_API_SVC_INSTANCE : MsoProperties.MSO_REST_API_SVC_INSTANCE); RequestDetails requestDetails = new RequestDetails(); @@ -114,7 +132,7 @@ public class MsoBusinessLogicImplTest extends AbstractTestNGSpringContextTests { String vnf_endpoint = endpoint.replaceFirst(SVC_INSTANCE_ID, "serviceInstanceTempId"); - msoBusinessLogic.deleteVnf(requestDetails, "serviceInstanceTempId","vnfInstanceTempId"); + msoBusinessLogic.deleteVnf(requestDetails, "serviceInstanceTempId", "vnfInstanceTempId"); verify(msoInterfaceMock).deleteVnf(requestDetails, vnf_endpoint + "/vnfInstanceTempId"); } @@ -123,31 +141,64 @@ public class MsoBusinessLogicImplTest extends AbstractTestNGSpringContextTests { String endpoint = validateEndpointPath(MsoProperties.MSO_REST_API_VF_MODULE_INSTANCE); RequestDetails requestDetails = new RequestDetails(); - String vf__modules_endpoint = endpoint.replaceFirst(SVC_INSTANCE_ID, "serviceInstanceTempId").replaceFirst(VNF_INSTANCE_ID, "vnfInstanceTempId"); + String vf__modules_endpoint = endpoint.replaceFirst(SVC_INSTANCE_ID, "serviceInstanceTempId").replaceFirst(MsoController.VNF_INSTANCE_ID, "vnfInstanceTempId"); + + msoBusinessLogic.deleteVfModule(requestDetails, "serviceInstanceTempId", "vnfInstanceTempId", "vfModuleTempId"); + verify(msoInterfaceMock).deleteVfModule(requestDetails, vf__modules_endpoint + "/vfModuleTempId"); + } + + + @Test + public void shouldSendProperScaleOutRequest() throws IOException { + ArgumentCaptor<RequestDetailsWrapper> requestDetailsWrapperArgumentCaptor = ArgumentCaptor.forClass(RequestDetailsWrapper.class); + org.onap.vid.changeManagement.RequestDetails requestDetails = getScaleOutRequest(); + RequestDetailsWrapper expectedRequestWrapper = getExpectedRequestWrapper(); + + msoBusinessLogic.scaleOutVfModuleInstance(requestDetails, SERVICE_INSTANCE_ID, VNF_INSTANCE_ID); + + verify(msoInterfaceMock).scaleOutVFModuleInstance(requestDetailsWrapperArgumentCaptor.capture(), eq(EXPECTED_SCALE_OUT_PATH)); + RequestDetailsWrapper actual = requestDetailsWrapperArgumentCaptor.getAllValues().get(0); - msoBusinessLogic.deleteVfModule(requestDetails, "serviceInstanceTempId","vnfInstanceTempId", "vfModuleTempId"); - verify(msoInterfaceMock).deleteVfModule(requestDetails, vf__modules_endpoint + "/vfModuleTempId" ); + assertThat(expectedRequestWrapper.requestDetails).isEqualTo(actual.requestDetails); } @Test - public void insertServiceInstantiationToDB_StartJob() { - -// broker = new JobsBrokerServiceInDatabaseImpl(dataAccessServiceMock, sessionFactory); -// ((JobsBrokerServiceInDatabaseImpl)broker).deleteAll(); -// -//// msoBusinessLogic.setDataAccessService(dataAccessServiceMock); -//// msoBusinessLogic.setJobsBrokerService(broker); -//// msoBusinessLogic.setJobAdapter(jobAdapter); -// -// ServiceInstantiation serviceInstantiation = new ServiceInstantiation(); -// serviceInstantiation.setCount(2); -// serviceInstantiation.setInstanceName("TestName"); -// -// msoBusinessLogic.pushBulkJob(serviceInstantiation, "testUserId"); -// -// List<ServiceInfo> serviceInfoList = dataAccessServiceMock.getList(ServiceInfo.class, null); -// int k = 9; -// Assert.assertEquals(serviceInstantiation, containsInAnyOrder(serviceInfoList.toArray())); + public void shouldFilterOutOrchestrationRequestsNotAllowedInDashboard() throws IOException { + String vnfModelTypeOrchestrationRequests = getFileContentAsString(PATH_TO_EXPECTED_MSO_MODEL_TYPE_REQ); + String scaleOutActionOrchestrationRequests = getFileContentAsString(PATH_TO_EXPECTED_MSO_SCALEOUT_REQ); + + MsoResponseWrapper msoResponseWrapperMock = mock(MsoResponseWrapper.class); + when(msoInterfaceMock.getOrchestrationRequestsForDashboard(any(String.class), any(String.class), any(String.class), any(RestObject.class))) + .thenReturn(msoResponseWrapperMock); + when(msoResponseWrapperMock.getEntity()).thenReturn(vnfModelTypeOrchestrationRequests, scaleOutActionOrchestrationRequests); + + List<Request> filteredOrchestrationReqs = msoBusinessLogic.getOrchestrationRequestsForDashboard(); + + assertThat(filteredOrchestrationReqs).hasSize(3); + assertThat(MsoBusinessLogicImpl.DASHBOARD_ALLOWED_TYPES) + .containsAll(filteredOrchestrationReqs + .stream() + .map(el -> el.getRequestType().toUpperCase()) + .collect(Collectors.toList())); + assertThat(filteredOrchestrationReqs + .stream() + .map(org.onap.vid.domain.mso.Request::getRequestScope) + .collect(Collectors.toList())) + .containsOnly("vnf", "vfModule"); + } + + + private String getFileContentAsString(Path pathToFile) throws IOException { + return new String(Files.readAllBytes(pathToFile)); + } + + private org.onap.vid.changeManagement.RequestDetails getScaleOutRequest() throws IOException { + return OBJECT_MAPPER.readValue(PATH_TO_NOT_PROCESSED_SCALE_OUT_REQUEST.toFile(), org.onap.vid.changeManagement.RequestDetails.class); + } + + private RequestDetailsWrapper getExpectedRequestWrapper() throws IOException { + return OBJECT_MAPPER.readValue(PATH_TO_FINAL_SCALE_OUT_REQUEST.toFile(), new TypeReference<RequestDetailsWrapper<org.onap.vid.changeManagement.RequestDetails>>() { + }); } } |