Merge "Fix and improvement for MsoBusinessLogic tests"
authorOfir Sonsino <ofir.sonsino@intl.att.com>
Wed, 31 Oct 2018 07:38:48 +0000 (07:38 +0000)
committerGerrit Code Review <gerrit@onap.org>
Wed, 31 Oct 2018 07:38:48 +0000 (07:38 +0000)
vid-app-common/src/main/java/org/onap/vid/mso/rest/RequestDetailsWrapper.java
vid-app-common/src/test/java/org/onap/vid/mso/MsoBusinessLogicImplTest.java
vid-app-common/src/test/java/org/onap/vid/mso/MsoBusinessLogicTest.java [deleted file]
vid-app-common/src/test/resources/WEB-INF/conf/system.properties

index 0e320a3..20c8442 100644 (file)
@@ -1,5 +1,34 @@
+/*
+ * ============LICENSE_START==========================================
+ * ===================================================================
+ * Modifications Copyright (C) 2018 Nokia. All rights reserved.
+ * ===================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END============================================
+ *
+ *
+ */
 package org.onap.vid.mso.rest;
 
-public class RequestDetailsWrapper {
-    public RequestDetails requestDetails;
+public final class RequestDetailsWrapper {
+
+    private final RequestDetails requestDetails;
+
+    public RequestDetailsWrapper(RequestDetails requestDetails) {
+        this.requestDetails = requestDetails;
+    }
+
+    public RequestDetails getRequestDetails() {
+        return requestDetails;
+    }
 }
index 54e924d..4616732 100644 (file)
+/*
+ * ============LICENSE_START==========================================
+ * ===================================================================
+ * Modifications Copyright (C) 2018 Nokia. All rights reserved.
+ * ===================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END============================================
+ *
+ *
+ */
 package org.onap.vid.mso;
 
+import static org.assertj.core.api.Assertions.assertThat;
+import static org.assertj.core.api.Assertions.assertThatExceptionOfType;
+import static org.junit.Assert.assertEquals;
+import static org.mockito.BDDMockito.given;
+import static org.mockito.Matchers.any;
+import static org.mockito.Matchers.argThat;
+import static org.mockito.Matchers.eq;
+import static org.mockito.Mockito.mock;
+import static org.onap.vid.mso.MsoBusinessLogicImpl.validateEndpointPath;
+
 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.springframework.test.context.ContextConfiguration;
-import org.springframework.test.context.testng.AbstractTestNGSpringContextTests;
-import org.springframework.test.context.web.WebAppConfiguration;
-import org.testng.Assert;
-import org.testng.annotations.BeforeTest;
-import org.testng.annotations.DataProvider;
-import org.testng.annotations.Test;
-import org.togglz.core.manager.FeatureManager;
-
 import java.io.IOException;
+import java.net.URL;
 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.mso.MsoBusinessLogicImpl.validateEndpointPath;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.ArgumentMatcher;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+import org.onap.portalsdk.core.util.SystemProperties;
+import org.onap.vid.exceptions.GenericUncheckedException;
+import org.onap.vid.mso.rest.Request;
+import org.onap.vid.mso.rest.RequestDetails;
+import org.onap.vid.mso.rest.RequestDetailsWrapper;
+import org.onap.vid.properties.Features;
+import org.springframework.http.HttpStatus;
+import org.springframework.test.context.ContextConfiguration;
+import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
+import org.togglz.core.manager.FeatureManager;
 
 @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;
+@RunWith(SpringJUnit4ClassRunner.class)
+public class MsoBusinessLogicImplTest {
+
+    private static final ObjectMapper objectMapper = new ObjectMapper();
 
     @Mock
-    private FeatureManager featureManagerMock;
+    private FeatureManager featureManager;
 
     @Mock
-    private MsoInterface msoInterfaceMock;
+    private MsoInterface msoInterface;
 
+    private MsoBusinessLogicImpl msoBusinessLogic;
 
-    @BeforeTest
-    public void initMocks() {
+    @Before
+    public void setUp() {
         MockitoAnnotations.initMocks(this);
+        msoBusinessLogic = new MsoBusinessLogicImpl(msoInterface, featureManager);
+    }
+
+    @Test
+    public void createConfigurationInstance_shouldCallMsoInterface_withCorrectServiceInstanceId() throws Exception {
+        // given
+        String serviceInstanceId = "3f93c7cb-2fd0-4557-9514-e189b7b04f9d";
+        String endpointTemplate = String.format("/serviceInstances/v6/%s/configurations", serviceInstanceId);
+        RequestDetailsWrapper requestDetailsWrapper = createRequestDetails("mso_request_create_configuration.json");
+        MsoResponseWrapper expectedResponse = createOkResponse();
+        given(msoInterface.createConfigurationInstance(requestDetailsWrapper, endpointTemplate))
+            .willReturn(expectedResponse);
+
+        // when
+        MsoResponseWrapper msoResponseWrapper = msoBusinessLogic
+            .createConfigurationInstance(requestDetailsWrapper, serviceInstanceId);
+
+        // then
+        assertThat(msoResponseWrapper).isEqualToComparingFieldByField(expectedResponse);
+    }
+
+    private RequestDetailsWrapper createRequestDetails(String bodyFileName) throws Exception {
+        final URL resource = this.getClass().getResource("/payload_jsons/" + bodyFileName);
+        RequestDetails requestDetails = objectMapper.readValue(resource, RequestDetails.class);
+        return new RequestDetailsWrapper(requestDetails);
     }
 
     @Test
     public void validateEndpointPath_endPointIsNotEmptyAndVaild_returnProperty() {
         System.setProperty("TestEnv", "123");
         String foundEndPoint = validateEndpointPath("TestEnv");
-        Assert.assertEquals("123", foundEndPoint);
+        assertEquals("123", foundEndPoint);
     }
 
-    @Test(expectedExceptions = RuntimeException.class)
+    @Test
     public void validateEndpointPath_endPointIsNull_throwRuntimeException() {
-        validateEndpointPath("NotExists");
+        assertThatExceptionOfType(RuntimeException.class)
+            .isThrownBy(() -> validateEndpointPath("NotExists"));
     }
 
-    @Test(expectedExceptions = RuntimeException.class)
+    @Test
     public void validateEndpointPath_endPointIsNotEmptyButDoesntExists_throwRuntimeException() {
-        System.setProperty("EmptyEndPoint", "");
-        validateEndpointPath("EmptyEndPoint");
+        String endPoint = "EmptyEndPoint";
+        System.setProperty(endPoint, "");
+        assertThatExceptionOfType(GenericUncheckedException.class)
+            .isThrownBy(() -> validateEndpointPath(endPoint))
+            .withMessage(endPoint + " env variable is not defined");
     }
 
-
-    //@Test(dataProvider = "unAssignOrDeleteParams")
-    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);
+    @Test
+    public void deleteSvcInstance_verifyEndPointPathConstructing_unAssignFeatureOffOrUnAssignFlagIsFalse() {
+        // given
+        String endpointTemplate = "/serviceInstances/v5/%s";
+        String serviceInstanceId = "3f93c7cb-2fd0-4557-9514-e189b7b04f9d";
+        String svcEndpoint = String.format(endpointTemplate, serviceInstanceId);
         RequestDetails requestDetails = new RequestDetails();
+        MsoResponseWrapper expectedResponse = createOkResponse();
+        given(msoInterface.deleteSvcInstance(requestDetails, svcEndpoint)).willReturn(expectedResponse);
+        given(featureManager.isActive(Features.FLAG_UNASSIGN_SERVICE)).willReturn(false);
 
-        when(featureManagerMock.isActive(Features.FLAG_UNASSIGN_SERVICE)).thenReturn(isAssignFlag);
+        // when
+        MsoResponseWrapper msoResponseWrapper = msoBusinessLogic
+            .deleteSvcInstance(requestDetails, serviceInstanceId, "unAssignOrDeleteParams");
 
-        msoBusinessLogic.deleteSvcInstance(requestDetails, "tempId", status);
-
-        verify(msoInterfaceMock).deleteSvcInstance(requestDetails, endpoint + "/tempId");
-    }
-
-    @DataProvider
-    public Object[][] unAssignOrDeleteParams() {
-        return new Object[][]{
-                {Boolean.FALSE, "active"},
-                {Boolean.FALSE, "created"},
-                {Boolean.TRUE, "Active"},
-                {Boolean.TRUE, "unexpected-status"},
-        };
+        // then
+        assertThat(msoResponseWrapper).isEqualToComparingFieldByField(expectedResponse);
     }
 
-    //@Test(dataProvider = "unAssignStatus")
-    public void deleteSvcInstance_verifyEndPointPathConstructing_unAssignFeatureOnAndUnAssignFlagIsTrue(String status) {
-        Mockito.reset(msoInterfaceMock);
-        // in the test Features.FLAG_UNASSIGN_SERVICE is active so the endpoint should be MsoProperties.MSO_DELETE_OR_UNASSIGN_REST_API_SVC_INSTANCE
-        String endpoint = validateEndpointPath(MsoProperties.MSO_DELETE_OR_UNASSIGN_REST_API_SVC_INSTANCE);
+    @Test
+    public void deleteSvcInstance_verifyEndPointPathConstructing_unAssignFeatureOnAndUnAssignFlagIsTrue() {
+        // given
+        String endpointTemplate = "/serviceInstantiation/v5/serviceInstances/%s/unassign";
+        String serviceInstanceId = "3f93c7cb-2fd0-4557-9514-e189b7b04f9d";
+        String svcEndpoint = String.format(endpointTemplate, serviceInstanceId);
         RequestDetails requestDetails = new RequestDetails();
+        MsoResponseWrapper expectedResponse = createOkResponse();
+        given(msoInterface.unassignSvcInstance(requestDetails, svcEndpoint)).willReturn(expectedResponse);
+        given(featureManager.isActive(Features.FLAG_UNASSIGN_SERVICE)).willReturn(true);
 
-        when(featureManagerMock.isActive(Features.FLAG_UNASSIGN_SERVICE)).thenReturn(true);
-
-        msoBusinessLogic.deleteSvcInstance(requestDetails, "tempId", status);
+        // when
+        MsoResponseWrapper msoResponseWrapper = msoBusinessLogic
+            .deleteSvcInstance(requestDetails, serviceInstanceId, "assigned");
 
-        verify(msoInterfaceMock).unassignSvcInstance(requestDetails, endpoint + "/tempId/unassign");
-    }
-
-    @DataProvider
-    public Object[][] unAssignStatus() {
-        return new Object[][]{
-                {"Created"},
-                {"Pendingdelete"},
-                {"pending-Delete"},
-                {"Assigned"}
-        };
+        // then
+        assertThat(msoResponseWrapper).isEqualToComparingFieldByField(expectedResponse);
     }
 
     @Test
     public void deleteVnf_verifyEndPointPathConstructing() {
-        String endpoint = validateEndpointPath(MsoProperties.MSO_REST_API_VNF_INSTANCE);
+        // when
+        String endpointTemplate = "/serviceInstances/v5/%s/vnfs/%s";
+        String serviceInstanceId = "3f93c7cb-2fd0-4557-9514-e189b7b04f9d";
+        String vnfInstanceId = "testVnfInstanceTempId";
+        String vnfEndpoint = String.format(endpointTemplate, serviceInstanceId, vnfInstanceId);
         RequestDetails requestDetails = new RequestDetails();
+        MsoResponseWrapper expectedResponse = createOkResponse();
+        given(msoInterface.deleteVnf(requestDetails, vnfEndpoint)).willReturn(expectedResponse);
 
-        String vnf_endpoint = endpoint.replaceFirst(SVC_INSTANCE_ID, "serviceInstanceTempId");
+        // when
+        MsoResponseWrapper msoResponseWrapper = msoBusinessLogic
+            .deleteVnf(requestDetails, serviceInstanceId, vnfInstanceId);
 
-        msoBusinessLogic.deleteVnf(requestDetails, "serviceInstanceTempId", "vnfInstanceTempId");
-        verify(msoInterfaceMock).deleteVnf(requestDetails, vnf_endpoint + "/vnfInstanceTempId");
+        // then
+        assertThat(msoResponseWrapper).isEqualToComparingFieldByField(expectedResponse);
     }
 
     @Test
     public void deleteVfModule_verifyEndPointPathConstructing() {
-        String endpoint = validateEndpointPath(MsoProperties.MSO_REST_API_VF_MODULE_INSTANCE);
+        // when
+        String endpointTemplate = "/serviceInstances/v7/%s/vnfs/%s/vfModules/%s";
+        String serviceInstanceId = "3f93c7cb-2fd0-4557-9514-e189b7b04f9d";
+        String vnfInstanceId = "testVnfInstanceTempId";
+        String vfModuleId = "testVfModuleId";
+        String vnfEndpoint = String.format(endpointTemplate, serviceInstanceId, vnfInstanceId, vfModuleId);
         RequestDetails requestDetails = new RequestDetails();
-
-        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");
+        MsoResponseWrapper expectedResponse = createOkResponse();
+        given(msoInterface.deleteVfModule(requestDetails, vnfEndpoint)).willReturn(expectedResponse);
+
+        // when
+        MsoResponseWrapper msoResponseWrapper = msoBusinessLogic
+            .deleteVfModule(requestDetails, serviceInstanceId, vnfInstanceId, vfModuleId);
+        // then
+        assertThat(msoResponseWrapper).isEqualToComparingFieldByField(expectedResponse);
     }
 
-
     @Test
     public void shouldSendProperScaleOutRequest() throws IOException {
-        ArgumentCaptor<RequestDetailsWrapper> requestDetailsWrapperArgumentCaptor = ArgumentCaptor.forClass(RequestDetailsWrapper.class);
-        org.onap.vid.changeManagement.RequestDetails requestDetails = getScaleOutRequest();
-        RequestDetailsWrapper expectedRequestWrapper = getExpectedRequestWrapper();
+        // given
+        String serviceInstanceId = "3f93c7cb-2fd0-4557-9514-e189b7b04f9d";
+        String vnfInstanceId = "testVnfInstanceTempId";
+        String endpointTemplate = "/serviceInstantiation/v7/serviceInstances/%s/vnfs/%s/vfModules/scaleOut";
+        String vnfEndpoint = String.format(endpointTemplate, serviceInstanceId, vnfInstanceId);
+        org.onap.vid.changeManagement.RequestDetails requestDetails = readRequest(
+            "scaleOutVfModulePayload.json");
+        org.onap.vid.changeManagement.RequestDetailsWrapper expectedRequest = readExpectedRequest(
+            "scaleOutVfModulePayloadToMso.json");
+        MsoResponseWrapper expectedMsoResponseWrapper = createOkResponse();
+        given(
+            msoInterface
+                .scaleOutVFModuleInstance(argThat(new MsoRequestWrapperMatcher(expectedRequest)),
+                    eq(vnfEndpoint)))
+            .willReturn(expectedMsoResponseWrapper);
+
+        // when
+        MsoResponseWrapper msoResponseWrapper = msoBusinessLogic
+            .scaleOutVfModuleInstance(requestDetails, serviceInstanceId, vnfInstanceId);
+
+        // then
+        assertThat(msoResponseWrapper).isEqualToComparingFieldByField(expectedMsoResponseWrapper);
+    }
 
-        msoBusinessLogic.scaleOutVfModuleInstance(requestDetails, SERVICE_INSTANCE_ID, VNF_INSTANCE_ID);
+    private org.onap.vid.changeManagement.RequestDetails readRequest(String requestJsonFilename) throws IOException {
+        Path path = Paths.get("payload_jsons", requestJsonFilename);
+        URL url = this.getClass().getClassLoader().getResource(path.toString());
+        return objectMapper.readValue(url, org.onap.vid.changeManagement.RequestDetails.class);
+    }
 
-        verify(msoInterfaceMock).scaleOutVFModuleInstance(requestDetailsWrapperArgumentCaptor.capture(), eq(EXPECTED_SCALE_OUT_PATH));
-        RequestDetailsWrapper actual = requestDetailsWrapperArgumentCaptor.getAllValues().get(0);
+    private org.onap.vid.changeManagement.RequestDetailsWrapper readExpectedRequest(String requestJsonFilename)
+        throws IOException {
+        Path path = Paths.get("payload_jsons", requestJsonFilename);
+        URL url = this.getClass().getClassLoader().getResource(path.toString());
+        return objectMapper.readValue(url,
+            new TypeReference<org.onap.vid.changeManagement.RequestDetailsWrapper<org.onap.vid.changeManagement.RequestDetails>>() {
+            });
+    }
 
-        assertThat(expectedRequestWrapper.requestDetails).isEqualTo(actual.requestDetails);
+    private MsoResponseWrapper createOkResponse() {
+        HttpStatus expectedStatus = HttpStatus.ACCEPTED;
+        String expectedBody = " \"body\": {\n" +
+            "      \"requestReferences\": {\n" +
+            "        \"instanceId\": \" 123456 \",\n" +
+            "        \"requestId\": \"b6dc9806-b094-42f7-9386-a48de8218ce8\"\n" +
+            "      }";
+        MsoResponseWrapper responseWrapper = new MsoResponseWrapper();
+        responseWrapper.setEntity(expectedBody);
+        responseWrapper.setStatus(expectedStatus.value());
+        return responseWrapper;
     }
 
     @Test
     public void shouldFilterOutOrchestrationRequestsNotAllowedInDashboard() throws IOException {
-        String vnfModelTypeOrchestrationRequests = getFileContentAsString(PATH_TO_EXPECTED_MSO_MODEL_TYPE_REQ);
-        String scaleOutActionOrchestrationRequests = getFileContentAsString(PATH_TO_EXPECTED_MSO_SCALEOUT_REQ);
+        //given
+        String vnfModelTypeOrchestrationRequests = getFileContentAsString("mso_model_info_sample_response.json");
+        String scaleOutActionOrchestrationRequests = getFileContentAsString("mso_action_scaleout_sample_response.json");
 
         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);
-
+        given(msoInterface
+            .getOrchestrationRequestsForDashboard(any(String.class), any(String.class), any(String.class),
+                any(RestObject.class)))
+            .willReturn(msoResponseWrapperMock);
+        given(msoResponseWrapperMock.getEntity())
+            .willReturn(vnfModelTypeOrchestrationRequests, scaleOutActionOrchestrationRequests);
+
+        //when
         List<Request> filteredOrchestrationReqs = msoBusinessLogic.getOrchestrationRequestsForDashboard();
 
+        //then
         assertThat(filteredOrchestrationReqs).hasSize(3);
         assertThat(MsoBusinessLogicImpl.DASHBOARD_ALLOWED_TYPES)
-                .containsAll(filteredOrchestrationReqs
-                        .stream()
-                        .map(el -> el.getRequestType().toUpperCase())
-                        .collect(Collectors.toList()));
-        assertThat(filteredOrchestrationReqs
+            .containsAll(filteredOrchestrationReqs
                 .stream()
-                .map(org.onap.vid.domain.mso.Request::getRequestScope)
-                .collect(Collectors.toList()))
-                .containsOnly("vnf", "vfModule");
+                .map(el -> el.getRequestType().toUpperCase())
+                .collect(Collectors.toList()));
+        assertThat(filteredOrchestrationReqs)
+            .extracting(org.onap.vid.domain.mso.Request::getRequestScope)
+            .containsOnly("vnf", "vfModule");
     }
 
-
-    private String getFileContentAsString(Path pathToFile) throws IOException {
-        return new String(Files.readAllBytes(pathToFile));
+    private String getFileContentAsString(String resourceName) throws IOException {
+        URL url = this.getClass().getClassLoader().getResource(".");
+        Path path = Paths.get(url.getPath(), "payload_jsons", resourceName);
+        return new String(Files.readAllBytes(path));
     }
 
-    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 static class MsoRequestWrapperMatcher extends
+        ArgumentMatcher<org.onap.vid.changeManagement.RequestDetailsWrapper> {
+
+        private final org.onap.vid.changeManagement.RequestDetailsWrapper expectedRequest;
+
+        public MsoRequestWrapperMatcher(org.onap.vid.changeManagement.RequestDetailsWrapper expectedRequest) {
+            this.expectedRequest = expectedRequest;
+        }
 
-    private RequestDetailsWrapper getExpectedRequestWrapper() throws IOException {
-        return OBJECT_MAPPER.readValue(PATH_TO_FINAL_SCALE_OUT_REQUEST.toFile(), new TypeReference<RequestDetailsWrapper<org.onap.vid.changeManagement.RequestDetails>>() {
-        });
+        @Override
+        public boolean matches(Object argument) {
+            org.onap.vid.changeManagement.RequestDetailsWrapper requestDetailsWrapper = (org.onap.vid.changeManagement.RequestDetailsWrapper) argument;
+            return expectedRequest.requestDetails.equals(requestDetailsWrapper.requestDetails);
+        }
     }
 }
 
diff --git a/vid-app-common/src/test/java/org/onap/vid/mso/MsoBusinessLogicTest.java b/vid-app-common/src/test/java/org/onap/vid/mso/MsoBusinessLogicTest.java
deleted file mode 100644 (file)
index af7f74b..0000000
+++ /dev/null
@@ -1,61 +0,0 @@
-package org.onap.vid.mso;
-
-import com.fasterxml.jackson.databind.ObjectMapper;
-import org.junit.runner.RunWith;
-import org.mockito.InjectMocks;
-import org.mockito.Mock;
-import org.mockito.Mockito;
-import org.mockito.runners.MockitoJUnitRunner;
-import org.onap.vid.mso.MsoBusinessLogicImpl;
-import org.onap.vid.mso.MsoInterface;
-import org.onap.vid.mso.MsoResponseWrapper;
-import org.onap.vid.mso.rest.RequestDetails;
-import org.onap.vid.mso.rest.RequestDetailsWrapper;
-import org.testng.annotations.Test;
-
-import java.net.URL;
-
-import static org.testng.Assert.assertEquals;
-import static org.testng.Assert.assertNotNull;
-
-@RunWith(MockitoJUnitRunner.class)
-public class MsoBusinessLogicTest {
-
-    @InjectMocks
-    private MsoBusinessLogicImpl msoBusinessLogic;
-
-    @Mock
-    private MsoInterface msoClient;
-
-    @Test
-    public void testCreateInstance() throws Exception {
-        String instanceId = "3f93c7cb-2fd0-4557-9514-e189b7b04f9d";
-        final RequestDetailsWrapper requestDetailsWrapper = new RequestDetailsWrapper();
-        requestDetailsWrapper.requestDetails = setRequestDetails("mso_request_create_configuration.json");
-        Mockito.doReturn(getOkResponse(instanceId)).when(msoClient).createConfigurationInstance(requestDetailsWrapper, "/serviceInstances/v6/3f93c7cb-2fd0-4557-9514-e189b7b04f9d/configurations");
-        final MsoResponseWrapper msoResponseWrapper = msoBusinessLogic.createConfigurationInstance(requestDetailsWrapper, instanceId);
-
-        assertNotNull(msoResponseWrapper);
-        assertEquals(202, msoResponseWrapper.getStatus());
-    }
-
-    private MsoResponseWrapper getOkResponse(String instanceId){
-        MsoResponseWrapper responseWrapper = new MsoResponseWrapper();
-        String entity = " \"body\": {\n" +
-                "      \"requestReferences\": {\n" +
-                "        \"instanceId\": \""+instanceId+"\",\n" +
-                "        \"requestId\": \"b6dc9806-b094-42f7-9386-a48de8218ce8\"\n" +
-                "      }";
-        responseWrapper.setEntity(entity);
-        responseWrapper.setStatus(202);
-        return responseWrapper;
-    }
-
-    private RequestDetails setRequestDetails(String bodyFileName)throws Exception {
-        final URL resource = this.getClass().getResource("/payload_jsons/" + bodyFileName);
-        ObjectMapper mapper = new ObjectMapper();
-        RequestDetails requestDetails = mapper.readValue(resource, RequestDetails.class);
-        return requestDetails;
-
-    }
-}
index 6a8a1a3..baf56d3 100644 (file)
@@ -143,10 +143,11 @@ mso.max.polls=10
 mso.user.name=infraportal
 mso.password.x=OBF:1ghz1kfx1j1w1m7w1i271e8q1eas1hzj1m4i1iyy1kch1gdz
 mso.restapi.svc.instance=/serviceInstances/v5
+mso.restapi.svc.instance.deleteAndUnassign=/serviceInstantiation/v5/serviceInstances
 mso.restapi.vnf.instance=/serviceInstances/v5/<service_instance_id>/vnfs
 mso.restapi.vnf.changemanagement.instance=/serviceInstances/v5/<service_instance_id>/vnfs/<vnf_instance_id>/<request_type>
 mso.restapi.network.instance=/serviceInstances/v5/<service_instance_id>/networks
-mso.restapi.vf.module.instance=/serviceInstances/v6/<service_instance_id>/vnfs/<vnf_instance_id>/vfModules
+mso.restapi.vf.module.instance=/serviceInstances/v7/<service_instance_id>/vnfs/<vnf_instance_id>/vfModules
 mso.restapi.vf.module.scaleout=/serviceInstantiation/v7/serviceInstances/<service_instance_id>/vnfs/<vnf_instance_id>/vfModules/scaleOut
 mso.restapi.volume.group.instance=/serviceInstances/v5/<service_instance_id>/vnfs/<vnf_instance_id>/volumeGroups
 mso.restapi.get.orc.req=/orchestrationRequests/v5