Sending workflow data from UI to SO
[vid.git] / vid-app-common / src / test / java / org / onap / vid / mso / MsoBusinessLogicImplTest.java
index 39d777b..11bf364 100644 (file)
@@ -26,6 +26,9 @@ import com.fasterxml.jackson.databind.ObjectMapper;
 import io.joshworks.restclient.http.HttpResponse;
 import org.apache.commons.io.IOUtils;
 import org.jetbrains.annotations.NotNull;
+import org.mockito.hamcrest.MockitoHamcrest;
+import org.onap.vid.changeManagement.WorkflowRequestDetail;
+import org.onap.vid.controller.ControllersUtils;
 import org.springframework.test.context.testng.AbstractTestNGSpringContextTests;
 import org.testng.annotations.BeforeClass;
 import org.testng.annotations.Test;
@@ -60,12 +63,18 @@ import java.io.IOException;
 import java.net.URL;
 import java.nio.file.Path;
 import java.nio.file.Paths;
+import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
+import java.util.UUID;
 import java.util.stream.Collectors;
 
 import static org.assertj.core.api.Assertions.assertThat;
 import static org.assertj.core.api.Assertions.tuple;
 import static org.assertj.core.api.Assertions.assertThatExceptionOfType;
+import static org.hamcrest.Matchers.allOf;
+import static org.hamcrest.Matchers.hasEntry;
 import static org.junit.Assert.assertEquals;
 import static org.mockito.ArgumentMatchers.any;
 import static org.mockito.ArgumentMatchers.anyBoolean;
@@ -1329,6 +1338,45 @@ public class MsoBusinessLogicImplTest extends AbstractTestNGSpringContextTests {
         MsoBusinessLogicImpl.RequestType.fromValue(testValue);
     }
 
+    @Test
+    public void shouldProperlyInvokeVnfWorkflowWithValidParameters() {
+        // given
+        MsoResponseWrapper okResponse = createOkResponse();
+        WorkflowRequestDetail request = createWorkflowRequestDetail();
+        UUID serviceInstanceId = new UUID(1,10);
+        UUID vnfInstanceId = new UUID(2,20);
+        UUID workflow_UUID = new UUID(3,30);
+        String path = "/onap/so/infra/instanceManagement/v1/serviceInstances/"+serviceInstanceId+"/vnfs/"+vnfInstanceId+"/workflows/"+workflow_UUID;
+
+        given(msoInterface.invokeWorkflow(eq(request), eq(path), MockitoHamcrest.argThat(allOf(hasEntry("X-RequestorID", "testRequester"),hasEntry("X-ONAP-PartnerName", "VID"))))).willReturn(okResponse);
+
+        // when
+        MsoResponseWrapper response = msoBusinessLogic.invokeVnfWorkflow(request, "testRequester", serviceInstanceId, vnfInstanceId, workflow_UUID);
+
+        // then
+        assertThat(response).isEqualToComparingFieldByField(okResponse);
+    }
+
+    private WorkflowRequestDetail createWorkflowRequestDetail() {
+        WorkflowRequestDetail workflowRequestDetail = new WorkflowRequestDetail();
+        org.onap.vid.changeManagement.RequestParameters requestParameters = new org.onap.vid.changeManagement.RequestParameters();
+        HashMap<String,String> paramsMap = new HashMap<>();
+        paramsMap.put("testKey1","testValue1");
+        paramsMap.put("testKey2","testValue2");
+
+        List<Map<String,String>> mapArray= new ArrayList<>();
+        mapArray.add(paramsMap);
+        requestParameters.setUserParams(mapArray);
+
+        CloudConfiguration cloudConfiguration = new CloudConfiguration();
+        cloudConfiguration.setCloudOwner("testOwne");
+        cloudConfiguration.setTenantId("testId");
+        cloudConfiguration.setLcpCloudRegionId("testLcpCloudId");
+
+        workflowRequestDetail.setRequestParameters(requestParameters);
+        workflowRequestDetail.setCloudConfiguration(cloudConfiguration);
+        return workflowRequestDetail;
+    }
 
     private OperationalEnvironmentActivateInfo createTestOperationalEnvironmentActivateInfo() {
         OperationalEnvironmentController.OperationalEnvironmentActivateBody operationalEnvironmentActivateBody = new OperationalEnvironmentController.OperationalEnvironmentActivateBody(