Merge "Swap indexOf with contains"
[so.git] / mso-api-handlers / mso-api-handler-infra / src / test / java / org / openecomp / mso / apihandlerinfra / E2EServiceInstancesTest.java
index df3b365..aa0b109 100644 (file)
@@ -610,4 +610,147 @@ public class E2EServiceInstancesTest {
                                .getE2EServiceInstances("12345", "v3", "123456");\r
 \r
        }\r
+       \r
+       @Test\r
+       public void updateE2EServiceInstanceTestNormal() {\r
+               new MockUp<RequestsDatabase>() {\r
+                       @Mock\r
+                       public OperationStatus getOperationStatusByServiceId(\r
+                                       String serviceID) {\r
+                               OperationStatus operationStatus = new OperationStatus();\r
+                               operationStatus.setProgress("100");\r
+                               return operationStatus;\r
+                       }\r
+               };\r
+               new MockUp<E2EServiceInstances>() {\r
+                       @Mock\r
+                       private void createOperationStatusRecordForError(Action action,\r
+                                       String requestId) throws MsoDatabaseException {\r
+\r
+                       }\r
+               };\r
+               new MockUp<CatalogDatabase>() {\r
+                       @Mock\r
+                       public Service getServiceByModelName(String modelName) {\r
+                               Service svc = new Service();\r
+                               return svc;\r
+                       }\r
+               };\r
+\r
+               new MockUp<CatalogDatabase>() {\r
+                       @Mock\r
+                       public ServiceRecipe getServiceRecipeByModelUUID(String modelUUID,\r
+                                       String action) {\r
+                               ServiceRecipe rec = new ServiceRecipe();\r
+                               return rec;\r
+                       }\r
+               };\r
+\r
+               new MockUp<RequestClientFactory>() {\r
+                       @Mock\r
+                       public RequestClient getRequestClient(String orchestrationURI,\r
+                                       MsoJavaProperties props) throws IllegalStateException {\r
+                               RequestClient client = new CamundaClient();\r
+                               client.setUrl("/test/url");\r
+                               return client;\r
+                       }\r
+               };\r
+\r
+               new MockUp<CamundaClient>() {\r
+                       @Mock\r
+                       public HttpResponse post(String requestId, boolean isBaseVfModule,\r
+                                       int recipeTimeout, String requestAction,\r
+                                       String serviceInstanceId, String vnfId, String vfModuleId,\r
+                                       String volumeGroupId, String networkId, String serviceType,\r
+                                       String vnfType, String vfModuleType, String networkType,\r
+                                       String requestDetails, String recipeParamXsd) {\r
+                               ProtocolVersion pv = new ProtocolVersion("HTTP", 1, 1);\r
+                               HttpResponse resp = new BasicHttpResponse(pv, 202,\r
+                                               "test response");\r
+                               BasicHttpEntity entity = new BasicHttpEntity();\r
+                               String body = "{\"response\":\"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
+               E2EServiceInstances instance = new E2EServiceInstances();\r
+               String request = "{\"service\":{\"name\":\"so_test4\",\"description\":\"so_test2\",\"serviceDefId\":\"60c3e96e-0970-4871-b6e0-3b6de7561519\",\"templateId\":\"592f9437-a9c0-4303-b9f6-c445bb7e9814\",\"parameters\":{\"globalSubscriberId\":\"123457\",\"subscriberName\":\"Customer1\",\"serviceType\":\"voLTE\",\"templateName\":\"voLTE Service:1.0\",\"resources\":[{\"resourceName\":\"vIMS\",\"resourceDefId\":\"60c3e96e-0970-4871-b6e0-3b6de7561516\",\"resourceId\":\"60c3e96e-0970-4871-b6e0-3b6de7561512\",\"nsParameters\":{\"locationConstraints\":[{\"vnfProfileId\":\"zte-vBAS-1.0\",\"locationConstraints\":{\"vimId\":\"4050083f-465f-4838-af1e-47a545222ad0\"}},{\"vnfProfileId\":\"zte-vMME-1.0\",\"locationConstraints\":{\"vimId\":\"4050083f-465f-4838-af1e-47a545222ad0\"}}],\"additionalParamForNs\":{}}},{\"resourceName\":\"vEPC\",\"resourceDefId\":\"61c3e96e-0970-4871-b6e0-3b6de7561516\",\"resourceId\":\"62c3e96e-0970-4871-b6e0-3b6de7561512\",\"nsParameters\":{\"locationConstraints\":[{\"vnfProfileId\":\"zte-CSCF-1.0\",\"locationConstraints\":{\"vimId\":\"4050083f-465f-4838-af1e-47a545222ad1\"}}],\"additionalParamForNs\":{}}},{\"resourceName\":\"underlayvpn\",\"resourceDefId\":\"60c3e96e-0970-4871-b6e0-3b6de7561513\",\"resourceId\":\"60c3e96e-0970-4871-b6e0-3b6de7561514\",\"nsParameters\":{\"locationConstraints\":[],\"additionalParamForNs\":{\"externalDataNetworkName\":\"Flow_out_net\",\"m6000_mng_ip\":\"181.18.20.2\",\"externalCompanyFtpDataNetworkName\":\"Flow_out_net\",\"externalPluginManageNetworkName\":\"plugin_net_2014\",\"externalManageNetworkName\":\"mng_net_2017\",\"sfc_data_network\":\"sfc_data_net_2016\",\"NatIpRange\":\"210.1.1.10-210.1.1.20\",\"location\":\"4050083f-465f-4838-af1e-47a545222ad0\",\"sdncontroller\":\"9b9f02c0-298b-458a-bc9c-be3692e4f35e\"}}},{\"resourceName\":\"overlayvpn\",\"resourceDefId\":\"60c3e96e-0970-4871-b6e0-3b6de7561517\",\"resourceId\":\"60c3e96e-0970-4871-b6e0-3b6de7561518\",\"nsParameters\":{\"locationConstraints\":[],\"additionalParamForNs\":{\"externalDataNetworkName\":\"Flow_out_net\",\"m6000_mng_ip\":\"181.18.20.2\",\"externalCompanyFtpDataNetworkName\":\"Flow_out_net\",\"externalPluginManageNetworkName\":\"plugin_net_2014\",\"externalManageNetworkName\":\"mng_net_2017\",\"sfc_data_network\":\"sfc_data_net_2016\",\"NatIpRange\":\"210.1.1.10-210.1.1.20\",\"location\":\"4050083f-465f-4838-af1e-47a545222ad0\",\"sdncontroller\":\"9b9f02c0-298b-458a-bc9c-be3692e4f35e\"}}}]}}}";\r
+               Response resp = instance.updateE2EServiceInstance(request, "v3", "12345");\r
+               String respStr = resp.getEntity().toString();\r
+               assertTrue(respStr.indexOf("success") != -1);\r
+       }\r
+       \r
+       @Test\r
+       public void updateE2EServiceInstanceTestChkStatusFalse() {\r
+               new MockUp<RequestsDatabase>() {\r
+                       @Mock\r
+                       public OperationStatus getOperationStatusByServiceId(\r
+                                       String serviceID) {\r
+                               OperationStatus operationStatus = new OperationStatus();\r
+                               return operationStatus;\r
+                       }\r
+               };\r
+               new MockUp<E2EServiceInstances>() {\r
+                       @Mock\r
+                       private void createOperationStatusRecordForError(Action action,\r
+                                       String requestId) throws MsoDatabaseException {\r
+\r
+                       }\r
+               };\r
+               new MockUp<CatalogDatabase>() {\r
+                       @Mock\r
+                       public Service getServiceByModelName(String modelName) {\r
+                               Service svc = new Service();\r
+                               return svc;\r
+                       }\r
+               };\r
+\r
+               new MockUp<CatalogDatabase>() {\r
+                       @Mock\r
+                       public ServiceRecipe getServiceRecipeByModelUUID(String modelUUID,\r
+                                       String action) {\r
+                               ServiceRecipe rec = new ServiceRecipe();\r
+                               return rec;\r
+                       }\r
+               };\r
+\r
+               new MockUp<RequestClientFactory>() {\r
+                       @Mock\r
+                       public RequestClient getRequestClient(String orchestrationURI,\r
+                                       MsoJavaProperties props) throws IllegalStateException {\r
+                               RequestClient client = new CamundaClient();\r
+                               client.setUrl("/test/url");\r
+                               return client;\r
+                       }\r
+               };\r
+\r
+               new MockUp<CamundaClient>() {\r
+                       @Mock\r
+                       public HttpResponse post(String requestId, boolean isBaseVfModule,\r
+                                       int recipeTimeout, String requestAction,\r
+                                       String serviceInstanceId, String vnfId, String vfModuleId,\r
+                                       String volumeGroupId, String networkId, String serviceType,\r
+                                       String vnfType, String vfModuleType, String networkType,\r
+                                       String requestDetails, String recipeParamXsd) {\r
+                               ProtocolVersion pv = new ProtocolVersion("HTTP", 1, 1);\r
+                               HttpResponse resp = new BasicHttpResponse(pv, 202,\r
+                                               "test response");\r
+                               BasicHttpEntity entity = new BasicHttpEntity();\r
+                               String body = "{\"response\":\"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
+               E2EServiceInstances instance = new E2EServiceInstances();\r
+               String request = "{\"service\":{\"name\":\"so_test4\",\"description\":\"so_test2\",\"serviceDefId\":\"60c3e96e-0970-4871-b6e0-3b6de7561519\",\"templateId\":\"592f9437-a9c0-4303-b9f6-c445bb7e9814\",\"parameters\":{\"globalSubscriberId\":\"123457\",\"subscriberName\":\"Customer1\",\"serviceType\":\"voLTE\",\"templateName\":\"voLTE Service:1.0\",\"resources\":[{\"resourceName\":\"vIMS\",\"resourceDefId\":\"60c3e96e-0970-4871-b6e0-3b6de7561516\",\"resourceId\":\"60c3e96e-0970-4871-b6e0-3b6de7561512\",\"nsParameters\":{\"locationConstraints\":[{\"vnfProfileId\":\"zte-vBAS-1.0\",\"locationConstraints\":{\"vimId\":\"4050083f-465f-4838-af1e-47a545222ad0\"}},{\"vnfProfileId\":\"zte-vMME-1.0\",\"locationConstraints\":{\"vimId\":\"4050083f-465f-4838-af1e-47a545222ad0\"}}],\"additionalParamForNs\":{}}},{\"resourceName\":\"vEPC\",\"resourceDefId\":\"61c3e96e-0970-4871-b6e0-3b6de7561516\",\"resourceId\":\"62c3e96e-0970-4871-b6e0-3b6de7561512\",\"nsParameters\":{\"locationConstraints\":[{\"vnfProfileId\":\"zte-CSCF-1.0\",\"locationConstraints\":{\"vimId\":\"4050083f-465f-4838-af1e-47a545222ad1\"}}],\"additionalParamForNs\":{}}},{\"resourceName\":\"underlayvpn\",\"resourceDefId\":\"60c3e96e-0970-4871-b6e0-3b6de7561513\",\"resourceId\":\"60c3e96e-0970-4871-b6e0-3b6de7561514\",\"nsParameters\":{\"locationConstraints\":[],\"additionalParamForNs\":{\"externalDataNetworkName\":\"Flow_out_net\",\"m6000_mng_ip\":\"181.18.20.2\",\"externalCompanyFtpDataNetworkName\":\"Flow_out_net\",\"externalPluginManageNetworkName\":\"plugin_net_2014\",\"externalManageNetworkName\":\"mng_net_2017\",\"sfc_data_network\":\"sfc_data_net_2016\",\"NatIpRange\":\"210.1.1.10-210.1.1.20\",\"location\":\"4050083f-465f-4838-af1e-47a545222ad0\",\"sdncontroller\":\"9b9f02c0-298b-458a-bc9c-be3692e4f35e\"}}},{\"resourceName\":\"overlayvpn\",\"resourceDefId\":\"60c3e96e-0970-4871-b6e0-3b6de7561517\",\"resourceId\":\"60c3e96e-0970-4871-b6e0-3b6de7561518\",\"nsParameters\":{\"locationConstraints\":[],\"additionalParamForNs\":{\"externalDataNetworkName\":\"Flow_out_net\",\"m6000_mng_ip\":\"181.18.20.2\",\"externalCompanyFtpDataNetworkName\":\"Flow_out_net\",\"externalPluginManageNetworkName\":\"plugin_net_2014\",\"externalManageNetworkName\":\"mng_net_2017\",\"sfc_data_network\":\"sfc_data_net_2016\",\"NatIpRange\":\"210.1.1.10-210.1.1.20\",\"location\":\"4050083f-465f-4838-af1e-47a545222ad0\",\"sdncontroller\":\"9b9f02c0-298b-458a-bc9c-be3692e4f35e\"}}}]}}}";\r
+               Response resp = instance.updateE2EServiceInstance(request, "v3", "12345");\r
+               String respStr = resp.getEntity().toString();\r
+               assertTrue(respStr.indexOf("SVC2000") != -1);\r
+       }\r
 }\r