Merge "Add correlationId to ServiceInstancesRequest"
[so.git] / mso-api-handlers / mso-api-handler-infra / src / test / java / org / openecomp / mso / apihandlerinfra / ServiceInstanceTest.java
index ba1aab3..938a103 100644 (file)
 package org.openecomp.mso.apihandlerinfra;\r
 \r
 \r
+import static org.junit.Assert.assertTrue;\r
+\r
+import java.io.ByteArrayInputStream;\r
+import java.io.InputStream;\r
+import java.util.Collections;\r
+import java.util.HashMap;\r
+import java.util.List;\r
+import javax.ws.rs.core.Response;\r
+import mockit.Mock;\r
+import mockit.MockUp;\r
 import org.apache.http.HttpResponse;\r
 import org.apache.http.ProtocolVersion;\r
 import org.apache.http.entity.BasicHttpEntity;\r
 import org.apache.http.message.BasicHttpResponse;\r
 import org.hibernate.criterion.Criterion;\r
 import org.hibernate.criterion.Order;\r
+import org.junit.BeforeClass;\r
 import org.junit.Ignore;\r
 import org.junit.Test;\r
-\r
-import javax.ws.rs.core.Response;\r
-\r
-import static org.junit.Assert.assertFalse;\r
-import static org.junit.Assert.assertTrue;\r
-import static org.junit.Assert.fail;\r
-\r
-import java.io.ByteArrayInputStream;\r
-import java.io.InputStream;\r
-import java.util.Collections;\r
-import java.util.HashMap;\r
-import java.util.List;\r
-\r
 import org.openecomp.mso.apihandler.common.CamundaClient;\r
 import org.openecomp.mso.apihandler.common.RequestClient;\r
 import org.openecomp.mso.apihandler.common.RequestClientFactory;\r
+import org.openecomp.mso.apihandler.common.RequestClientParamater;\r
 import org.openecomp.mso.db.catalog.CatalogDatabase;\r
 import org.openecomp.mso.db.catalog.beans.Service;\r
 import org.openecomp.mso.db.catalog.beans.ServiceRecipe;\r
+import org.openecomp.mso.db.catalog.beans.VfModule;\r
+import org.openecomp.mso.db.catalog.beans.VfModuleCustomization;\r
+import org.openecomp.mso.db.catalog.beans.VnfComponentsRecipe;\r
+import org.openecomp.mso.db.catalog.beans.VnfRecipe;\r
+import org.openecomp.mso.db.catalog.beans.VnfResource;\r
 import org.openecomp.mso.properties.MsoJavaProperties;\r
+import org.openecomp.mso.properties.MsoPropertiesFactory;\r
 import org.openecomp.mso.requestsdb.InfraActiveRequests;\r
 import org.openecomp.mso.requestsdb.RequestsDatabase;\r
 \r
-import mockit.Mock;\r
-import mockit.MockUp;\r
-\r
 public class ServiceInstanceTest {\r
 \r
        /*** Create Service Instance Test Cases ***/\r
-       \r
+\r
+       @BeforeClass\r
+       public static void setUp() throws Exception {\r
+               MsoPropertiesFactory msoPropertiesFactory = new MsoPropertiesFactory();\r
+               msoPropertiesFactory.removeAllMsoProperties();\r
+               msoPropertiesFactory.initializeMsoProperties(Constants.MSO_PROP_APIHANDLER_INFRA, "src/test/resources/mso.apihandler-infra.properties");\r
+       }\r
+\r
+\r
        @Test\r
        public void createServiceInstanceInvalidModelInfo(){\r
                ServiceInstances instance = new ServiceInstances();\r
@@ -89,7 +99,6 @@ public class ServiceInstanceTest {
             "Locked instance - This service (testService) already has a request being worked with a status of null (RequestId - null). The existing request must finish or be cleaned up before proceeding."));\r
        }\r
        \r
-       @Ignore // 1802 merge\r
        @Test\r
        public void createServiceInstanceTestDBException(){\r
                new MockUp<RequestsDatabase>() {\r
@@ -124,7 +133,7 @@ public class ServiceInstanceTest {
                                + "\"requestDetails\": {\"requestInfo\": { \"source\": \"VID\", \"requestorId\": \"zz9999\",\"instanceName\": \"testService\"},\"requestParameters\": { \"autoBuildVfModules\": false,\"subscriptionServiceType\": \"test\"},\"modelInfo\":{\"modelInvariantId\": \"557ea944-c83e-43cf-9ed7-3a354abd6d34\",\"modelVersion\":\"v2\",\"modelType\":\"service\",\"modelName\":\"serviceModel\"}}}";\r
                Response resp = instance.createServiceInstance(requestJson, "v2");\r
                String respBody = resp.getEntity().toString();\r
-               assertTrue(respBody.contains("Exception while creating record in DB null"));\r
+               assertTrue(respBody.contains("Exception while creating record in DB") && respBody.contains("NullPointerException"));\r
        }\r
        \r
        @Ignore // 1802 merge\r
@@ -169,10 +178,9 @@ public class ServiceInstanceTest {
                                + "\"requestDetails\": {\"requestInfo\": { \"source\": \"VID\", \"requestorId\": \"zz9999\",\"instanceName\": \"testService\"},\"requestParameters\": { \"autoBuildVfModules\": false,\"subscriptionServiceType\": \"test\"},\"modelInfo\":{\"modelInvariantId\": \"557ea944-c83e-43cf-9ed7-3a354abd6d34\",\"modelVersion\":\"v2\",\"modelType\":\"service\",\"modelName\":\"serviceModel\"}}}";\r
                Response resp = instance.createServiceInstance(requestJson, "v2");\r
                String respBody = resp.getEntity().toString();\r
-               assertTrue(respBody.contains("Failed calling bpmn properties"));\r
+               assertTrue(respBody.contains("Failed calling bpmn properties"));  // was: Request Failed due to BPEL error\r
        }\r
        \r
-       @Ignore // 1802 merge\r
        @Test(expected = Exception.class)\r
        public void createServiceInstanceTest200Http(){\r
                new MockUp<RequestsDatabase>() {\r
@@ -217,15 +225,11 @@ public class ServiceInstanceTest {
         \r
         new MockUp<CamundaClient>() {\r
             @Mock\r
-            public HttpResponse post(String requestId, boolean isBaseVfModule,\r
-                               int recipeTimeout, String requestAction, String serviceInstanceId,\r
-                               String vnfId, String vfModuleId, String volumeGroupId, String networkId, String configurationId,\r
-                               String serviceType, String vnfType, String vfModuleType, String networkType,\r
-                               String requestDetails, String recipeParamXsd){ \r
+            public HttpResponse post(RequestClientParamater requestClientParamater) {\r
                ProtocolVersion pv = new ProtocolVersion("HTTP",1,1);\r
                HttpResponse resp = new BasicHttpResponse(pv,200, "test response");\r
                BasicHttpEntity entity = new BasicHttpEntity();\r
-               String body = "{\"response\":\"success\",\"message\":\"success\"}";\r
+               String body = "{\"content\":\"success\",\"message\":\"success\"}";\r
                InputStream instream = new ByteArrayInputStream(body.getBytes());\r
                entity.setContent(instream);\r
                resp.setEntity(entity);\r
@@ -243,7 +247,6 @@ public class ServiceInstanceTest {
                String respBody = resp.getEntity().toString();\r
        }\r
        \r
-       @Ignore // 1802 merge\r
        @Test\r
        public void createServiceInstanceTest500Http(){\r
                new MockUp<RequestsDatabase>() {\r
@@ -288,15 +291,11 @@ public class ServiceInstanceTest {
         \r
         new MockUp<CamundaClient>() {\r
             @Mock\r
-            public HttpResponse post(String requestId, boolean isBaseVfModule,\r
-                               int recipeTimeout, String requestAction, String serviceInstanceId,\r
-                               String vnfId, String vfModuleId, String volumeGroupId, String networkId, String configurationId,\r
-                               String serviceType, String vnfType, String vfModuleType, String networkType,\r
-                               String requestDetails, String recipeParamXsd){ \r
+            public HttpResponse post(RequestClientParamater requestClientParamater) {\r
                ProtocolVersion pv = new ProtocolVersion("HTTP",1,1);\r
                HttpResponse resp = new BasicHttpResponse(pv,500, "test response");\r
                BasicHttpEntity entity = new BasicHttpEntity();\r
-               String body = "{\"response\":\"success\",\"message\":\"success\"}";\r
+               String body = "{\"content\":\"success\",\"message\":\"success\"}";\r
                InputStream instream = new ByteArrayInputStream(body.getBytes());\r
                entity.setContent(instream);\r
                resp.setEntity(entity);\r
@@ -359,15 +358,11 @@ public class ServiceInstanceTest {
         \r
         new MockUp<CamundaClient>() {\r
             @Mock\r
-            public HttpResponse post(String requestId, boolean isBaseVfModule,\r
-                               int recipeTimeout, String requestAction, String serviceInstanceId,\r
-                               String vnfId, String vfModuleId, String volumeGroupId, String networkId, String configurationId,\r
-                               String serviceType, String vnfType, String vfModuleType, String networkType,\r
-                               String requestDetails, String recipeParamXsd){ \r
+            public HttpResponse post(RequestClientParamater requestClientParamater) {\r
                ProtocolVersion pv = new ProtocolVersion("HTTP",1,1);\r
                HttpResponse resp = new BasicHttpResponse(pv,500, "test response");\r
                BasicHttpEntity entity = new BasicHttpEntity();\r
-               String body = "{\"response\":\"success\",\"message\":\"success\"}";\r
+               String body = "{\"content\":\"success\",\"message\":\"success\"}";\r
                InputStream instream = new ByteArrayInputStream(body.getBytes());\r
                entity.setContent(instream);\r
                resp.setEntity(entity);\r
@@ -386,7 +381,6 @@ public class ServiceInstanceTest {
                assertTrue(respBody.contains("No valid modelVersionId is specified"));\r
        }\r
        \r
-       @Ignore // 1802 merge\r
        @Test\r
        public void createServiceInstanceTestNullHttpResp(){\r
                new MockUp<RequestsDatabase>() {\r
@@ -431,11 +425,7 @@ public class ServiceInstanceTest {
         \r
         new MockUp<CamundaClient>() {\r
             @Mock\r
-            public HttpResponse post(String requestId, boolean isBaseVfModule,\r
-                               int recipeTimeout, String requestAction, String serviceInstanceId,\r
-                               String vnfId, String vfModuleId, String volumeGroupId, String networkId, String configurationId,\r
-                               String serviceType, String vnfType, String vfModuleType, String networkType,\r
-                               String requestDetails, String recipeParamXsd){ \r
+            public HttpResponse post(RequestClientParamater requestClientParamater){\r
                return null;\r
             }\r
         };\r
@@ -582,7 +572,7 @@ public class ServiceInstanceTest {
                                +"\"networkInstanceId\":\"1882937\","\r
                                +"\"volumeGroupInstanceId\":\"1882935\","\r
                                +"\"vfModuleInstanceId\":\"1882934\","\r
-                               + "\"requestDetails\": {\"requestInfo\": { \"source\": \"VID\", \"requestorId\": \"zz9999\"},\"requestParameters\": { \"autoBuildVfModules\": false},\"modelInfo\":{\"modelInvariantId\": \"557ea944-c83e-43cf-9ed7-3a354abd6d34\",\"modelVersion\":\"v2\",\"modelType\":\"service\"}}}";\r
+                               + "\"requestDetails\": {\"requestInfo\": { \"source\": \"VID\", \"requestorId\": \"zz9999\"},\"requestParameters\": { \"autoBuildVfModules\": false,\"subscriptionServiceType\":\"test\"},\"modelInfo\":{\"modelInvariantId\": \"557ea944-c83e-43cf-9ed7-3a354abd6d34\",\"modelVersion\":\"v2\",\"modelType\":\"service\"}}}";\r
                Response resp = instance.createServiceInstance(requestJson, "v2");\r
                String respBody = resp.getEntity().toString();\r
                assertTrue(respBody.contains("Error parsing request.") && respBody.contains("No valid modelName is specified"));\r
@@ -597,7 +587,7 @@ public class ServiceInstanceTest {
                                +"\"networkInstanceId\":\"1882937\","\r
                                +"\"volumeGroupInstanceId\":\"1882935\","\r
                                +"\"vfModuleInstanceId\":\"1882934\","\r
-                               + "\"requestDetails\": {\"requestInfo\": { \"source\": \"VID\", \"requestorId\": \"zz9999\"},\"requestParameters\": { \"autoBuildVfModules\": true},\"modelInfo\":{\"modelInvariantId\": \"557ea944-c83e-43cf-9ed7-3a354abd6d34\",\"modelVersion\":\"v2\",\"modelType\":\"service\",\"modelName\":\"serviceModel\"}}}";\r
+                               + "\"requestDetails\": {\"requestInfo\": { \"source\": \"VID\", \"requestorId\": \"zz9999\"},\"requestParameters\": { \"autoBuildVfModules\": true,\"subscriptionServiceType\":\"test\"},\"modelInfo\":{\"modelInvariantId\": \"557ea944-c83e-43cf-9ed7-3a354abd6d34\",\"modelVersion\":\"v2\",\"modelType\":\"service\",\"modelName\":\"serviceModel\"}}}";\r
                Response resp = instance.createServiceInstance(requestJson, "v2");\r
                String respBody = resp.getEntity().toString();\r
                assertTrue(respBody.contains("Error parsing request.") && respBody.contains("AutoBuildVfModule is not valid in the v2 version"));\r
@@ -679,7 +669,6 @@ public class ServiceInstanceTest {
                assertTrue(respStr.contains("Error parsing request.") && respStr.contains("No valid serviceInstanceId matching the serviceInstanceId in request URI is specified"));\r
        }\r
 \r
-       @Ignore // 1802 merge\r
        @Test\r
        public void activateServiceInstanceTestNormal(){\r
                ServiceInstances instance = new ServiceInstances();\r
@@ -733,7 +722,6 @@ public class ServiceInstanceTest {
                assertTrue(respStr.contains("Error parsing request.") && respStr.contains("No valid serviceInstanceId matching the serviceInstanceId in request URI is specified"));\r
        }\r
        \r
-       @Ignore // 1802 merge\r
        @Test\r
        public void deactivateServiceInstanceTestNormal(){\r
                ServiceInstances instance = new ServiceInstances();\r
@@ -787,7 +775,6 @@ public class ServiceInstanceTest {
                assertTrue(respStr.contains("Error parsing request.") && respStr.contains("No valid modelVersionId is specified"));\r
        }\r
        \r
-       @Ignore // 1802 merge\r
        @Test\r
        public void deleteServiceInstanceTestNormal(){\r
                ServiceInstances instance = new ServiceInstances();\r
@@ -849,24 +836,104 @@ public class ServiceInstanceTest {
                assertTrue(respStr.contains("Error parsing request.") && respStr.contains("No valid tenantId is specified"));\r
        }\r
        \r
-       @Ignore // 1802 merge\r
        @Test\r
        public void createVNFInstanceTestNormal(){\r
+\r
+               new MockUp<RequestsDatabase>() {\r
+                       @Mock\r
+                       public InfraActiveRequests checkInstanceNameDuplicate (HashMap<String,String> instanceIdMap, String instanceName, String requestScope) {\r
+                               return null;\r
+                       }\r
+               };\r
+\r
+               new MockUp<RequestsDatabase>() {\r
+                       @Mock\r
+                       public int updateInfraStatus (String requestId, String requestStatus, long progress, String lastModifiedBy) {\r
+                               return 1;\r
+                       }\r
+               };\r
+\r
+               new MockUp<MsoRequest>() {\r
+                       @Mock\r
+                       public void createRequestRecord (Status status, Action action) {\r
+                               return;\r
+                       }\r
+               };\r
+\r
+               new MockUp<CatalogDatabase>() {\r
+                       @Mock\r
+                       public Service getServiceByModelName (String defaultServiceModelName) {\r
+                               Service serviceRecord = new Service();\r
+                               serviceRecord.setModelUUID("2883992993");\r
+                               return serviceRecord;\r
+                       }\r
+               };\r
+\r
+               new MockUp<CatalogDatabase>() {\r
+                       @Mock\r
+                       public ServiceRecipe getServiceRecipeByModelUUID (String uuid,String action) {\r
+                               ServiceRecipe recipe =new ServiceRecipe();\r
+                               recipe.setOrchestrationUri("/test/mso");\r
+                               recipe.setRecipeTimeout(1000);\r
+                               return recipe;\r
+                       }\r
+               };\r
+               new MockUp<RequestClientFactory>() {\r
+                       @Mock\r
+                       public RequestClient getRequestClient(String orchestrationURI, MsoJavaProperties props) throws IllegalStateException{\r
+                               RequestClient client = new CamundaClient();\r
+                               client.setUrl("/test/url");\r
+                               return client;\r
+                       }\r
+               };\r
+               new MockUp<CatalogDatabase>() {\r
+                       @Mock\r
+                       public VnfResource getVnfResourceByModelCustomizationId(String modelCustomizationId) {\r
+                               VnfResource vnfResource = new VnfResource();\r
+                               return vnfResource;\r
+                       }\r
+               };\r
+\r
+               new MockUp<CatalogDatabase>() {\r
+                       @Mock\r
+                       public VnfRecipe getVnfRecipe (String vnfType, String action) {\r
+                               VnfRecipe recipe =new VnfRecipe();\r
+                               recipe.setOrchestrationUri("/test/mso");\r
+                               recipe.setRecipeTimeout(1000);\r
+                               return recipe;\r
+                       }\r
+               };\r
+\r
+\r
+               new MockUp<CamundaClient>() {\r
+                       @Mock\r
+                       public HttpResponse post(RequestClientParamater requestClientParamater) {\r
+                               ProtocolVersion pv = new ProtocolVersion("HTTP",1,1);\r
+                               HttpResponse resp = new BasicHttpResponse(pv,200, "test response");\r
+                               BasicHttpEntity entity = new BasicHttpEntity();\r
+\r
+                               final String body = "{\"content\":\"success\",\"message\":\"success\"}";\r
+                               InputStream instream = new ByteArrayInputStream(body.getBytes());\r
+                               entity.setContent(instream);\r
+                               resp.setEntity(entity);\r
+                               return resp;\r
+                       }\r
+               };\r
+\r
                ServiceInstances instance = new ServiceInstances();\r
                String s = "\"cloudConfiguration\":{}";\r
-               String requestJson = "{\"serviceInstanceId\":\"1882939\","\r
-                               +"\"vnfInstanceId\":\"1882938\","\r
-                               +"\"networkInstanceId\":\"1882937\","\r
-                               +"\"volumeGroupInstanceId\":\"1882935\","\r
-                               +"\"vfModuleInstanceId\":\"1882934\","\r
-                               + "\"requestDetails\": {\"cloudConfiguration\":{\"lcpCloudRegionId\":\"2993841\",\"tenantId\":\"2910032\"}, \"relatedInstanceList\" :[{\"relatedInstance\":{\"instanceName\":\"testInstance\",\"instanceId\":\"557ea944-c83e-43cf-9ed7-3a354abd6d34\",\"modelInfo\":{\"modelInvariantId\": \"557ea944-c83e-43cf-9ed7-3a354abd6d34\",\"modelVersion\":\"v2\",\"modelType\":\"service\",\"modelName\":\"serviceModel\",\"modelVersionId\":\"4839499\"}}}],\"requestInfo\": { \"source\": \"VID\", \"requestorId\": \"zz9999\",\"instanceName\": \"testService\"},\"requestParameters\": { \"autoBuildVfModules\": false,\"subscriptionServiceType\": \"test\"},\"modelInfo\":{\"modelInvariantId\": \"557ea944-c83e-43cf-9ed7-3a354abd6d34\",\"modelVersion\":\"v2\",\"modelType\":\"service\",\"modelName\":\"serviceModel\",\"modelVersionId\":\"288393\",\"modelCustomizationId\":\"389823213\"}}}";\r
+               String requestJson = "{\"serviceInstanceId\":\"1882939\",\"vnfInstanceId\":\"1882938\"," +\r
+                               "\"networkInstanceId\":\"1882937\",\"volumeGroupInstanceId\":\"1882935\",\"vfModuleInstanceId\":\"1882934\"," +\r
+                               "\"requestDetails\":{\"cloudConfiguration\":{\"lcpCloudRegionId\":\"2993841\",\"tenantId\":\"2910032\"}," +\r
+                               "\"relatedInstanceList\":[{\"relatedInstance\":{\"instanceName\":\"testInstance\",\"instanceId\":\"557ea944-c83e-43cf-9ed7-3a354abd6d34\"," +\r
+                               "\"modelInfo\":{\"modelInvariantId\":\"557ea944-c83e-43cf-9ed7-3a354abd6d34\",\"modelVersion\":\"v2\",\"modelType\":\"service\",\"modelName\":\"serviceModel\",\"modelVersionId\":\"4839499\"}}}],\"requestInfo\":{\"source\":\"VID\",\"requestorId\":\"zz9999\",\"instanceName\":\"testService\",\"productFamilyId\":\"productFamilyId1\"}," +\r
+                               "\"requestParameters\":{\"autoBuildVfModules\":false,\"subscriptionServiceType\":\"test\",\"aLaCarte\":false},\"modelInfo\":{\"modelInvariantId\":\"557ea944-c83e-43cf-9ed7-3a354abd6d34\",\"modelVersion\":\"v2\",\"modelType\":\"vnf\",\"modelName\":\"serviceModel\",\"modelVersionId\":\"288393\",\"modelCustomizationId\":\"557ea944-c83e-43cf-9ed7-3a354abd6d34\"}}}";\r
                Response resp = instance.createVnfInstance(requestJson, "v3","557ea944-c83e-43cf-9ed7-3a354abd6d34");\r
                String respStr = resp.getEntity().toString();\r
-               assertTrue(respStr.contains("SVC2000"));\r
+               assertTrue(respStr.equals("success"));\r
        }\r
        \r
        /*** Replace Vnf Instance Test Cases ***/\r
-       @Ignore // 1802 merge\r
        @Test\r
        public void replaceVNFInstanceTestNormal(){\r
                ServiceInstances instance = new ServiceInstances();\r
@@ -900,7 +967,7 @@ public class ServiceInstanceTest {
        }\r
        \r
        /*** Update Vnf Instance Test Cases ***/\r
-       \r
+\r
        @Test\r
        public void deleteVNFInstanceTestNormal(){\r
                ServiceInstances instance = new ServiceInstances();\r
@@ -915,4 +982,187 @@ public class ServiceInstanceTest {
                String respStr = resp.getEntity().toString();\r
                assertTrue(respStr.contains("SVC2000"));\r
        }\r
+\r
+       @Test\r
+       public void createVFModuleTestNormal(){\r
+\r
+               new MockUp<RequestsDatabase>() {\r
+                       @Mock\r
+                       public InfraActiveRequests checkInstanceNameDuplicate (HashMap<String,String> instanceIdMap, String instanceName, String requestScope) {\r
+                               return null;\r
+                       }\r
+               };\r
+\r
+               new MockUp<RequestsDatabase>() {\r
+                       @Mock\r
+                       public int updateInfraStatus (String requestId, String requestStatus, long progress, String lastModifiedBy) {\r
+                               return 1;\r
+                       }\r
+               };\r
+\r
+               new MockUp<MsoRequest>() {\r
+                       @Mock\r
+                       public void createRequestRecord (Status status, Action action) {\r
+                               return;\r
+                       }\r
+               };\r
+\r
+               new MockUp<CatalogDatabase>() {\r
+                       @Mock\r
+                       public Service getServiceByModelName (String defaultServiceModelName) {\r
+                               Service serviceRecord = new Service();\r
+                               serviceRecord.setModelUUID("2883992993");\r
+                               return serviceRecord;\r
+                       }\r
+               };\r
+\r
+               new MockUp<CatalogDatabase>() {\r
+                       @Mock\r
+                       public ServiceRecipe getServiceRecipeByModelUUID (String uuid,String action) {\r
+                               ServiceRecipe recipe =new ServiceRecipe();\r
+                               recipe.setOrchestrationUri("/test/mso");\r
+                               recipe.setRecipeTimeout(1000);\r
+                               return recipe;\r
+                       }\r
+               };\r
+               new MockUp<RequestClientFactory>() {\r
+                       @Mock\r
+                       public RequestClient getRequestClient(String orchestrationURI, MsoJavaProperties props) throws IllegalStateException{\r
+                               RequestClient client = new CamundaClient();\r
+                               client.setUrl("/test/url");\r
+                               return client;\r
+                       }\r
+               };\r
+               new MockUp<CatalogDatabase>() {\r
+                       @Mock\r
+                       public VnfResource getVnfResourceByModelCustomizationId(String modelCustomizationId) {\r
+                               VnfResource vnfResource = new VnfResource();\r
+                               return vnfResource;\r
+                       }\r
+               };\r
+\r
+               new MockUp<CatalogDatabase>() {\r
+                       @Mock\r
+                       public VnfComponentsRecipe getVnfComponentsRecipeByVfModuleModelUUId (String vfModuleModelUUId, String vnfComponentType, String action) {\r
+                               VnfComponentsRecipe recipe =new VnfComponentsRecipe();\r
+                               recipe.setOrchestrationUri("/test/mso");\r
+                               recipe.setRecipeTimeout(1000);\r
+                               return recipe;\r
+                       }\r
+               };\r
+               new MockUp<CatalogDatabase>() {\r
+                       @Mock\r
+                       public VfModule getVfModuleByModelUuid(String modelUuid) {\r
+                               VfModule vfModule =new VfModule();\r
+                               return vfModule;\r
+                       }\r
+               };\r
+\r
+               new MockUp<CatalogDatabase>() {\r
+                       @Mock\r
+                       public VfModuleCustomization getVfModuleCustomizationByModelCustomizationId(String modelCustomizationUuid) {\r
+                               VfModuleCustomization vfModuleCustomization =new VfModuleCustomization();\r
+                               final VfModule vfModule = new VfModule();\r
+                               vfModule.setModelUUID("296e278c-bfa8-496e-b59e-fb1fe715f726");\r
+                               vfModuleCustomization.setVfModule(vfModule);\r
+                               return vfModuleCustomization;\r
+                       }\r
+               };\r
+\r
+\r
+               new MockUp<CamundaClient>() {\r
+                       @Mock\r
+                       public HttpResponse post(RequestClientParamater requestClientParamater){\r
+                               ProtocolVersion pv = new ProtocolVersion("HTTP",1,1);\r
+                               HttpResponse resp = new BasicHttpResponse(pv,200, "test response");\r
+                               BasicHttpEntity entity = new BasicHttpEntity();\r
+\r
+                               final String body = "{\"content\":\"success\",\"message\":\"success\"}";\r
+                               InputStream instream = new ByteArrayInputStream(body.getBytes());\r
+                               entity.setContent(instream);\r
+                               resp.setEntity(entity);\r
+                               return resp;\r
+                       }\r
+               };\r
+\r
+               ServiceInstances instance = new ServiceInstances();\r
+               String s = "\"cloudConfiguration\":{}";\r
+               String requestJson = "{\"serviceInstanceId\":\"43b34d6d-1ab2-4c7a-a3a0-5471306550c5\",\"vnfInstanceId\":\"7b1ead4f-ea06-45c6-921e-124061e5eae7\",\"networkInstanceId\":\"1882937\",\"volumeGroupInstanceId\":\"1882935\",\"vfModuleInstanceId\":\"1882934\",\"requestDetails\":{\"requestInfo\":{\"instanceName\":\"vf-inst\",\"source\":\"VID\",\"suppressRollback\":false,\"requestorId\":\"123123\"},\"modelInfo\":{\"modelType\":\"vfModule\",\"modelInvariantId\":\"dde10afa-c732-4f0f-8501-2d2e01ea46ef\",\"modelVersionId\":\"296e278c-bfa8-496e-b59e-fb1fe715f726\",\"modelName\":\"CarrierTosca0::module-1\",\"modelCustomizationId\":\"ce0fdd17-c677-4bb5-b047-97016ec1e403\",\"modelCustomizationName\":\"ce0fdd17-c677-4bb5-b047-97016ec1e403\",\"modelVersion\":\"1.0\"},\"requestParameters\":{\"userParams\":[]},\"cloudConfiguration\":{\"lcpCloudRegionId\":\"EastUS\",\"tenantId\":\"48de34f6-65a1-4d09-84b4-68b011151672\"},\"relatedInstanceList\":[{\"relatedInstance\":{\"instanceId\":\"43b34d6d-1ab2-4c7a-a3a0-5471306550c5\",\"modelInfo\":{\"modelType\":\"service\",\"modelInvariantId\":\"1192c9b7-bc24-42c9-8f11-415dc679be88\",\"modelVersionId\":\"acb8b74b-afe6-4cc2-92c3-0a09961ab77e\",\"modelName\":\"service\",\"modelVersion\":\"1.0\"}}},{\"relatedInstance\":{\"instanceId\":\"7b1ead4f-ea06-45c6-921e-124061e5eae7\",\"modelInfo\":{\"modelType\":\"vnf\",\"modelInvariantId\":\"a545165e-9646-4030-824c-b9d9c66a886a\",\"modelVersionId\":\"a0b6dffe-0de3-4099-8b94-dc05be942914\",\"modelName\":\"vnf-mdoel\",\"modelVersion\":\"1.0\",\"modelCustomizationName\":\"vnf-mdoel 0\"}}}]}}";\r
+               Response resp = instance.createVfModuleInstance(requestJson, "v5","43b34d6d-1ab2-4c7a-a3a0-5471306550c5", "7b1ead4f-ea06-45c6-921e-124061e5eae7");\r
+               String respStr = resp.getEntity().toString();\r
+               assertTrue(respStr.equals("success"));\r
+       }\r
+\r
+       @Test\r
+       public void createPortConfigurationTestNormal() {\r
+\r
+               new MockUp<RequestsDatabase>() {\r
+                       @Mock\r
+                       public InfraActiveRequests checkInstanceNameDuplicate (HashMap<String,String> instanceIdMap, String instanceName, String requestScope) {\r
+                               return null;\r
+                       }\r
+               };\r
+\r
+               new MockUp<RequestsDatabase>() {\r
+                       @Mock\r
+                       public int updateInfraStatus (String requestId, String requestStatus, long progress, String lastModifiedBy) {\r
+                               return 1;\r
+                       }\r
+               };\r
+\r
+               new MockUp<MsoRequest>() {\r
+                       @Mock\r
+                       public void createRequestRecord (Status status, Action action) {\r
+                               return;\r
+                       }\r
+               };\r
+\r
+               new MockUp<CamundaClient>() {\r
+                       @Mock\r
+                       public HttpResponse post(RequestClientParamater requestClientParamater) {\r
+                               ProtocolVersion pv = new ProtocolVersion("HTTP",1,1);\r
+                               HttpResponse resp = new BasicHttpResponse(pv,200, "test response");\r
+                               BasicHttpEntity entity = new BasicHttpEntity();\r
+\r
+                               final String body = "{\"content\":\"success\",\"message\":\"success\"}";\r
+                               InputStream instream = new ByteArrayInputStream(body.getBytes());\r
+                               entity.setContent(instream);\r
+                               resp.setEntity(entity);\r
+                               return resp;\r
+                       }\r
+               };\r
+\r
+               ServiceInstances sir = new ServiceInstances();\r
+               String requestJson = "{\"serviceInstanceId\":\"43b34d6d-1ab2-4c7a-a3a0-5471306550c5\",\"vnfInstanceId\":\"7b1ead4f-ea06-45c6-921e-124061e5eae7\",\"networkInstanceId\":\"1882937\",\"volumeGroupInstanceId\":\"1882935\",\"vfModuleInstanceId\":\"1882934\",\"requestDetails\":{\"requestInfo\":{\"instanceName\":\"vf-inst\",\"source\":\"VID\",\"suppressRollback\":false,\"requestorId\":\"123123\"},\"modelInfo\":{\"modelType\":\"vfModule\",\"modelInvariantId\":\"dde10afa-c732-4f0f-8501-2d2e01ea46ef\",\"modelVersionId\":\"296e278c-bfa8-496e-b59e-fb1fe715f726\",\"modelName\":\"CarrierTosca0::module-1\",\"modelCustomizationId\":\"ce0fdd17-c677-4bb5-b047-97016ec1e403\",\"modelCustomizationName\":\"ce0fdd17-c677-4bb5-b047-97016ec1e403\",\"modelVersion\":\"1.0\"},\"requestParameters\":{\"userParams\":[]},\"cloudConfiguration\":{\"lcpCloudRegionId\":\"EastUS\",\"tenantId\":\"48de34f6-65a1-4d09-84b4-68b011151672\"},\"relatedInstanceList\":[{\"relatedInstance\":{\"instanceId\":\"43b34d6d-1ab2-4c7a-a3a0-5471306550c5\",\"modelInfo\":{\"modelType\":\"service\",\"modelInvariantId\":\"1192c9b7-bc24-42c9-8f11-415dc679be88\",\"modelVersionId\":\"acb8b74b-afe6-4cc2-92c3-0a09961ab77e\",\"modelName\":\"service\",\"modelVersion\":\"1.0\"}}},{\"relatedInstance\":{\"instanceId\":\"7b1ead4f-ea06-45c6-921e-124061e5eae7\",\"modelInfo\":{\"modelType\":\"vnf\",\"modelInvariantId\":\"a545165e-9646-4030-824c-b9d9c66a886a\",\"modelVersionId\":\"a0b6dffe-0de3-4099-8b94-dc05be942914\",\"modelName\":\"vnf-mdoel\",\"modelVersion\":\"1.0\",\"modelCustomizationName\":\"vnf-mdoel 0\"}}}]}}";\r
+               final Response response = sir.createPortConfiguration(requestJson, "v5", "43b34d6d-1ab2-4c7a-a3a0-5471306550c5");\r
+       }\r
+\r
+       @Test\r
+       public void createPortConfigurationTestBlankOrchestrationURI() {\r
+\r
+               new MockUp<RequestsDatabase>() {\r
+                       @Mock\r
+                       public InfraActiveRequests checkInstanceNameDuplicate (HashMap<String,String> instanceIdMap, String instanceName, String requestScope) {\r
+                               return null;\r
+                       }\r
+               };\r
+\r
+               new MockUp<RequestsDatabase>() {\r
+                       @Mock\r
+                       public int updateInfraStatus (String requestId, String requestStatus, long progress, String lastModifiedBy) {\r
+                               return 1;\r
+                       }\r
+               };\r
+\r
+               new MockUp<MsoRequest>() {\r
+                       @Mock\r
+                       public void createRequestRecord (Status status, Action action) {\r
+                               return;\r
+                       }\r
+               };\r
+\r
+               ServiceInstances sir = new ServiceInstances();\r
+               String requestJson = "{\"serviceInstanceId\":\"43b34d6d-1ab2-4c7a-a3a0-5471306550c5\",\"vnfInstanceId\":\"7b1ead4f-ea06-45c6-921e-124061e5eae7\",\"networkInstanceId\":\"1882937\",\"volumeGroupInstanceId\":\"1882935\",\"vfModuleInstanceId\":\"1882934\",\"requestDetails\":{\"requestInfo\":{\"instanceName\":\"vf-inst\",\"source\":\"VID\",\"suppressRollback\":false,\"requestorId\":\"123123\"},\"modelInfo\":{\"modelType\":\"vfModule\",\"modelInvariantId\":\"dde10afa-c732-4f0f-8501-2d2e01ea46ef\",\"modelVersionId\":\"296e278c-bfa8-496e-b59e-fb1fe715f726\",\"modelName\":\"CarrierTosca0::module-1\",\"modelCustomizationId\":\"ce0fdd17-c677-4bb5-b047-97016ec1e403\",\"modelCustomizationName\":\"ce0fdd17-c677-4bb5-b047-97016ec1e403\",\"modelVersion\":\"1.0\"},\"requestParameters\":{\"userParams\":[]},\"cloudConfiguration\":{\"lcpCloudRegionId\":\"EastUS\",\"tenantId\":\"48de34f6-65a1-4d09-84b4-68b011151672\"},\"relatedInstanceList\":[{\"relatedInstance\":{\"instanceId\":\"43b34d6d-1ab2-4c7a-a3a0-5471306550c5\",\"modelInfo\":{\"modelType\":\"service\",\"modelInvariantId\":\"1192c9b7-bc24-42c9-8f11-415dc679be88\",\"modelVersionId\":\"acb8b74b-afe6-4cc2-92c3-0a09961ab77e\",\"modelName\":\"service\",\"modelVersion\":\"1.0\"}}},{\"relatedInstance\":{\"instanceId\":\"7b1ead4f-ea06-45c6-921e-124061e5eae7\",\"modelInfo\":{\"modelType\":\"vnf\",\"modelInvariantId\":\"a545165e-9646-4030-824c-b9d9c66a886a\",\"modelVersionId\":\"a0b6dffe-0de3-4099-8b94-dc05be942914\",\"modelName\":\"vnf-mdoel\",\"modelVersion\":\"1.0\",\"modelCustomizationName\":\"vnf-mdoel 0\"}}}]}}";\r
+               final Response response = sir.createPortConfiguration(requestJson, "v5", "43b34d6d-1ab2-4c7a-a3a0-5471306550c5");\r
+       }\r
 }\r