MSO API Handler Infra test repair
[so.git] / mso-api-handlers / mso-api-handler-infra / src / test / java / org / openecomp / mso / apihandlerinfra / ServiceInstanceTest.java
1 /*-\r
2  * ============LICENSE_START=======================================================\r
3  * ONAP - SO\r
4  * ================================================================================\r
5  * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.\r
6  * ================================================================================\r
7  * Licensed under the Apache License, Version 2.0 (the "License");\r
8  * you may not use this file except in compliance with the License.\r
9  * You may obtain a copy of the License at\r
10  *\r
11  *      http://www.apache.org/licenses/LICENSE-2.0\r
12  *\r
13  * Unless required by applicable law or agreed to in writing, software\r
14  * distributed under the License is distributed on an "AS IS" BASIS,\r
15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
16  * See the License for the specific language governing permissions and\r
17  * limitations under the License.\r
18  * ============LICENSE_END=========================================================\r
19  */\r
20 \r
21 package org.openecomp.mso.apihandlerinfra;\r
22 \r
23 \r
24 import org.apache.http.HttpResponse;\r
25 import org.apache.http.ProtocolVersion;\r
26 import org.apache.http.entity.BasicHttpEntity;\r
27 import org.apache.http.message.BasicHttpResponse;\r
28 import org.hibernate.criterion.Criterion;\r
29 import org.hibernate.criterion.Order;\r
30 import org.junit.BeforeClass;\r
31 import org.junit.Ignore;\r
32 import org.junit.Test;\r
33 \r
34 import javax.ws.rs.core.Response;\r
35 \r
36 import static org.junit.Assert.assertFalse;\r
37 import static org.junit.Assert.assertTrue;\r
38 import static org.junit.Assert.fail;\r
39 \r
40 import java.io.ByteArrayInputStream;\r
41 import java.io.InputStream;\r
42 import java.util.Collections;\r
43 import java.util.HashMap;\r
44 import java.util.List;\r
45 \r
46 import org.openecomp.mso.apihandler.common.CamundaClient;\r
47 import org.openecomp.mso.apihandler.common.RequestClient;\r
48 import org.openecomp.mso.apihandler.common.RequestClientFactory;\r
49 import org.openecomp.mso.db.catalog.CatalogDatabase;\r
50 import org.openecomp.mso.db.catalog.beans.*;\r
51 import org.openecomp.mso.properties.MsoJavaProperties;\r
52 import org.openecomp.mso.properties.MsoPropertiesException;\r
53 import org.openecomp.mso.properties.MsoPropertiesFactory;\r
54 import org.openecomp.mso.requestsdb.InfraActiveRequests;\r
55 import org.openecomp.mso.requestsdb.RequestsDatabase;\r
56 \r
57 import mockit.Mock;\r
58 import mockit.MockUp;\r
59 \r
60 public class ServiceInstanceTest {\r
61 \r
62         /*** Create Service Instance Test Cases ***/\r
63 \r
64         @BeforeClass\r
65         public static void setUp() throws Exception {\r
66                 MsoPropertiesFactory msoPropertiesFactory = new MsoPropertiesFactory();\r
67                 msoPropertiesFactory.removeAllMsoProperties();\r
68                 msoPropertiesFactory.initializeMsoProperties(Constants.MSO_PROP_APIHANDLER_INFRA, "src/test/resources/mso.apihandler-infra.properties");\r
69         }\r
70 \r
71 \r
72         @Test\r
73         public void createServiceInstanceInvalidModelInfo(){\r
74                 ServiceInstances instance = new ServiceInstances();\r
75                 String requestJson = "{\"requestDetails\": {\"requestInfo\": { \"source\": \"VID\", \"requestorId\": \"zz9999\"}}}";\r
76                 Response resp = instance.createServiceInstance(requestJson, "v5");\r
77                 String respBody = resp.getEntity().toString();\r
78                 assertTrue(respBody.contains("Error parsing request.") && respBody.contains("No valid model-info is specified"));\r
79         }\r
80         \r
81         @Test\r
82         public void createServiceInstanceNormalDuplicate(){\r
83                 new MockUp<RequestsDatabase>() {\r
84             @Mock\r
85             public InfraActiveRequests checkInstanceNameDuplicate (HashMap<String,String> instanceIdMap, String instanceName, String requestScope) {\r
86                 return new InfraActiveRequests();\r
87             }\r
88         };\r
89                 ServiceInstances instance = new ServiceInstances();\r
90                 String requestJson = "{\"serviceInstanceId\":\"1882939\","\r
91                                 +"\"vnfInstanceId\":\"1882938\","\r
92                                 +"\"networkInstanceId\":\"1882937\","\r
93                                 +"\"volumeGroupInstanceId\":\"1882935\","\r
94                                 +"\"vfModuleInstanceId\":\"1882934\","\r
95                                 + "\"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
96                 Response resp = instance.createServiceInstance(requestJson, "v2");\r
97                 String respBody = resp.getEntity().toString();\r
98                 assertTrue(respBody.contains(\r
99             "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
100         }\r
101         \r
102         @Test\r
103         public void createServiceInstanceTestDBException(){\r
104                 new MockUp<RequestsDatabase>() {\r
105             @Mock\r
106             public InfraActiveRequests checkInstanceNameDuplicate (HashMap<String,String> instanceIdMap, String instanceName, String requestScope) {\r
107                 return null;\r
108             }\r
109         };\r
110         new MockUp<CatalogDatabase>() {\r
111             @Mock\r
112             public Service getServiceByModelName (String defaultServiceModelName) {\r
113                 Service serviceRecord = new Service();\r
114                 serviceRecord.setModelUUID("2883992993");\r
115                 return serviceRecord;\r
116             }\r
117         };\r
118         new MockUp<CatalogDatabase>() {\r
119             @Mock\r
120             public ServiceRecipe getServiceRecipeByModelUUID (String uuid,String action) {\r
121                 ServiceRecipe recipe =new ServiceRecipe();\r
122                 recipe.setOrchestrationUri("/test/mso");\r
123                 recipe.setRecipeTimeout(1000);\r
124                 return recipe;\r
125             }\r
126         };\r
127                 ServiceInstances instance = new ServiceInstances();\r
128                 String requestJson = "{\"serviceInstanceId\":\"1882939\","\r
129                                 +"\"vnfInstanceId\":\"1882938\","\r
130                                 +"\"networkInstanceId\":\"1882937\","\r
131                                 +"\"volumeGroupInstanceId\":\"1882935\","\r
132                                 +"\"vfModuleInstanceId\":\"1882934\","\r
133                                 + "\"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
134                 Response resp = instance.createServiceInstance(requestJson, "v2");\r
135                 String respBody = resp.getEntity().toString();\r
136                 assertTrue(respBody.contains("Exception while creating record in DB") && respBody.contains("NullPointerException"));\r
137         }\r
138         \r
139         @Ignore // 1802 merge\r
140         @Test\r
141         public void createServiceInstanceTestBpmnFail(){\r
142                 new MockUp<RequestsDatabase>() {\r
143             @Mock\r
144             public InfraActiveRequests checkInstanceNameDuplicate (HashMap<String,String> instanceIdMap, String instanceName, String requestScope) {\r
145                 return null;\r
146             }\r
147         };\r
148         new MockUp<CatalogDatabase>() {\r
149             @Mock\r
150             public Service getServiceByModelName (String defaultServiceModelName) {\r
151                 Service serviceRecord = new Service();\r
152                 serviceRecord.setModelUUID("2883992993");\r
153                 return serviceRecord;\r
154             }\r
155         };\r
156         new MockUp<CatalogDatabase>() {\r
157             @Mock\r
158             public ServiceRecipe getServiceRecipeByModelUUID (String uuid,String action) {\r
159                 ServiceRecipe recipe =new ServiceRecipe();\r
160                 recipe.setOrchestrationUri("/test/mso");\r
161                 recipe.setRecipeTimeout(1000);\r
162                 return recipe;\r
163             }\r
164         };\r
165         \r
166         new MockUp<MsoRequest>() {\r
167             @Mock\r
168             public void createRequestRecord (Status status, Action action) {\r
169                 return;\r
170             }\r
171         };\r
172                 ServiceInstances instance = new ServiceInstances();\r
173                 String requestJson = "{\"serviceInstanceId\":\"1882939\","\r
174                                 +"\"vnfInstanceId\":\"1882938\","\r
175                                 +"\"networkInstanceId\":\"1882937\","\r
176                                 +"\"volumeGroupInstanceId\":\"1882935\","\r
177                                 +"\"vfModuleInstanceId\":\"1882934\","\r
178                                 + "\"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
179                 Response resp = instance.createServiceInstance(requestJson, "v2");\r
180                 String respBody = resp.getEntity().toString();\r
181                 assertTrue(respBody.contains("Failed calling bpmn properties"));  // was: Request Failed due to BPEL error\r
182         }\r
183         \r
184         @Test(expected = Exception.class)\r
185         public void createServiceInstanceTest200Http(){\r
186                 new MockUp<RequestsDatabase>() {\r
187             @Mock\r
188             public InfraActiveRequests checkInstanceNameDuplicate (HashMap<String,String> instanceIdMap, String instanceName, String requestScope) {\r
189                 return null;\r
190             }\r
191         };\r
192         new MockUp<CatalogDatabase>() {\r
193             @Mock\r
194             public Service getServiceByModelName (String defaultServiceModelName) {\r
195                 Service serviceRecord = new Service();\r
196                 serviceRecord.setModelUUID("2883992993");\r
197                 return serviceRecord;\r
198             }\r
199         };\r
200         new MockUp<CatalogDatabase>() {\r
201             @Mock\r
202             public ServiceRecipe getServiceRecipeByModelUUID (String uuid,String action) {\r
203                 ServiceRecipe recipe =new ServiceRecipe();\r
204                 recipe.setOrchestrationUri("/test/mso");\r
205                 recipe.setRecipeTimeout(1000);\r
206                 return recipe;\r
207             }\r
208         };\r
209         \r
210         new MockUp<MsoRequest>() {\r
211             @Mock\r
212             public void createRequestRecord (Status status, Action action) {\r
213                 return;\r
214             }\r
215         };\r
216         \r
217         new MockUp<RequestClientFactory>() {\r
218             @Mock\r
219             public RequestClient getRequestClient(String orchestrationURI, MsoJavaProperties props) throws IllegalStateException{\r
220                 RequestClient client = new CamundaClient();\r
221                 client.setUrl("/test/url");\r
222                 return client;\r
223             }\r
224         };\r
225         \r
226         new MockUp<CamundaClient>() {\r
227             @Mock\r
228             public HttpResponse post(String requestId, boolean isBaseVfModule,\r
229                                 int recipeTimeout, String requestAction, String serviceInstanceId,\r
230                                 String vnfId, String vfModuleId, String volumeGroupId, String networkId, String configurationId,\r
231                                 String serviceType, String vnfType, String vfModuleType, String networkType,\r
232                                 String requestDetails, String recipeParamXsd){ \r
233                 ProtocolVersion pv = new ProtocolVersion("HTTP",1,1);\r
234                 HttpResponse resp = new BasicHttpResponse(pv,200, "test response");\r
235                 BasicHttpEntity entity = new BasicHttpEntity();\r
236                 String body = "{\"response\":\"success\",\"message\":\"success\"}";\r
237                 InputStream instream = new ByteArrayInputStream(body.getBytes());\r
238                 entity.setContent(instream);\r
239                 resp.setEntity(entity);\r
240                 return resp;\r
241             }\r
242         };\r
243                 ServiceInstances instance = new ServiceInstances();\r
244                 String requestJson = "{\"serviceInstanceId\":\"1882939\","\r
245                                 +"\"vnfInstanceId\":\"1882938\","\r
246                                 +"\"networkInstanceId\":\"1882937\","\r
247                                 +"\"volumeGroupInstanceId\":\"1882935\","\r
248                                 +"\"vfModuleInstanceId\":\"1882934\","\r
249                                 + "\"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
250                 Response resp = instance.createServiceInstance(requestJson, "v2");\r
251                 String respBody = resp.getEntity().toString();\r
252         }\r
253         \r
254         @Test\r
255         public void createServiceInstanceTest500Http(){\r
256                 new MockUp<RequestsDatabase>() {\r
257             @Mock\r
258             public InfraActiveRequests checkInstanceNameDuplicate (HashMap<String,String> instanceIdMap, String instanceName, String requestScope) {\r
259                 return null;\r
260             }\r
261         };\r
262         new MockUp<CatalogDatabase>() {\r
263             @Mock\r
264             public Service getServiceByModelName (String defaultServiceModelName) {\r
265                 Service serviceRecord = new Service();\r
266                 serviceRecord.setModelUUID("2883992993");\r
267                 return serviceRecord;\r
268             }\r
269         };\r
270         new MockUp<CatalogDatabase>() {\r
271             @Mock\r
272             public ServiceRecipe getServiceRecipeByModelUUID (String uuid,String action) {\r
273                 ServiceRecipe recipe =new ServiceRecipe();\r
274                 recipe.setOrchestrationUri("/test/mso");\r
275                 recipe.setRecipeTimeout(1000);\r
276                 return recipe;\r
277             }\r
278         };\r
279         \r
280         new MockUp<MsoRequest>() {\r
281             @Mock\r
282             public void createRequestRecord (Status status, Action action) {\r
283                 return;\r
284             }\r
285         };\r
286         \r
287         new MockUp<RequestClientFactory>() {\r
288             @Mock\r
289             public RequestClient getRequestClient(String orchestrationURI, MsoJavaProperties props) throws IllegalStateException{\r
290                 RequestClient client = new CamundaClient();\r
291                 client.setUrl("/test/url");\r
292                 return client;\r
293             }\r
294         };\r
295         \r
296         new MockUp<CamundaClient>() {\r
297             @Mock\r
298             public HttpResponse post(String requestId, boolean isBaseVfModule,\r
299                                 int recipeTimeout, String requestAction, String serviceInstanceId,\r
300                                 String vnfId, String vfModuleId, String volumeGroupId, String networkId, String configurationId,\r
301                                 String serviceType, String vnfType, String vfModuleType, String networkType,\r
302                                 String requestDetails, String recipeParamXsd){ \r
303                 ProtocolVersion pv = new ProtocolVersion("HTTP",1,1);\r
304                 HttpResponse resp = new BasicHttpResponse(pv,500, "test response");\r
305                 BasicHttpEntity entity = new BasicHttpEntity();\r
306                 String body = "{\"response\":\"success\",\"message\":\"success\"}";\r
307                 InputStream instream = new ByteArrayInputStream(body.getBytes());\r
308                 entity.setContent(instream);\r
309                 resp.setEntity(entity);\r
310                 return resp;\r
311             }\r
312         };\r
313                 ServiceInstances instance = new ServiceInstances();\r
314                 String requestJson = "{\"serviceInstanceId\":\"1882939\","\r
315                                 +"\"vnfInstanceId\":\"1882938\","\r
316                                 +"\"networkInstanceId\":\"1882937\","\r
317                                 +"\"volumeGroupInstanceId\":\"1882935\","\r
318                                 +"\"vfModuleInstanceId\":\"1882934\","\r
319                                 + "\"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
320                 Response resp = instance.createServiceInstance(requestJson, "v2");\r
321                 String respBody = resp.getEntity().toString();\r
322                 assertTrue(respBody.contains("Request Failed due to BPEL error with HTTP Status"));\r
323         }\r
324         \r
325         @Test\r
326         public void createServiceInstanceTestVnfModelType(){\r
327                 new MockUp<RequestsDatabase>() {\r
328             @Mock\r
329             public InfraActiveRequests checkInstanceNameDuplicate (HashMap<String,String> instanceIdMap, String instanceName, String requestScope) {\r
330                 return null;\r
331             }\r
332         };\r
333         new MockUp<CatalogDatabase>() {\r
334             @Mock\r
335             public Service getServiceByModelName (String defaultServiceModelName) {\r
336                 Service serviceRecord = new Service();\r
337                 serviceRecord.setModelUUID("2883992993");\r
338                 return serviceRecord;\r
339             }\r
340         };\r
341         new MockUp<CatalogDatabase>() {\r
342             @Mock\r
343             public ServiceRecipe getServiceRecipeByModelUUID (String uuid,String action) {\r
344                 ServiceRecipe recipe =new ServiceRecipe();\r
345                 recipe.setOrchestrationUri("/test/mso");\r
346                 recipe.setRecipeTimeout(1000);\r
347                 return recipe;\r
348             }\r
349         };\r
350         \r
351         new MockUp<MsoRequest>() {\r
352             @Mock\r
353             public void createRequestRecord (Status status, Action action) {\r
354                 return;\r
355             }\r
356         };\r
357         \r
358         new MockUp<RequestClientFactory>() {\r
359             @Mock\r
360             public RequestClient getRequestClient(String orchestrationURI, MsoJavaProperties props) throws IllegalStateException{\r
361                 RequestClient client = new CamundaClient();\r
362                 client.setUrl("/test/url");\r
363                 return client;\r
364             }\r
365         };\r
366         \r
367         new MockUp<CamundaClient>() {\r
368             @Mock\r
369             public HttpResponse post(String requestId, boolean isBaseVfModule,\r
370                                 int recipeTimeout, String requestAction, String serviceInstanceId,\r
371                                 String vnfId, String vfModuleId, String volumeGroupId, String networkId, String configurationId,\r
372                                 String serviceType, String vnfType, String vfModuleType, String networkType,\r
373                                 String requestDetails, String recipeParamXsd){ \r
374                 ProtocolVersion pv = new ProtocolVersion("HTTP",1,1);\r
375                 HttpResponse resp = new BasicHttpResponse(pv,500, "test response");\r
376                 BasicHttpEntity entity = new BasicHttpEntity();\r
377                 String body = "{\"response\":\"success\",\"message\":\"success\"}";\r
378                 InputStream instream = new ByteArrayInputStream(body.getBytes());\r
379                 entity.setContent(instream);\r
380                 resp.setEntity(entity);\r
381                 return resp;\r
382             }\r
383         };\r
384                 ServiceInstances instance = new ServiceInstances();\r
385                 String requestJson = "{\"serviceInstanceId\":\"1882939\","\r
386                                 +"\"vnfInstanceId\":\"1882938\","\r
387                                 +"\"networkInstanceId\":\"1882937\","\r
388                                 +"\"volumeGroupInstanceId\":\"1882935\","\r
389                                 +"\"vfModuleInstanceId\":\"1882934\","\r
390                                 + "\"requestDetails\": {\"requestInfo\": { \"source\": \"VID\", \"requestorId\": \"zz9999\",\"instanceName\": \"testService\"},\"requestParameters\": { \"autoBuildVfModules\": false,\"subscriptionServiceType\": \"test\"},\"modelInfo\":{\"modelInvariantId\": \"557ea944-c83e-43cf-9ed7-3a354abd6d34\",\"modelVersion\":\"v2\",\"modelType\":\"vnf\",\"modelName\":\"serviceModel\",\"modelCustomizationName\":\"test\"}}}";\r
391                 Response resp = instance.createServiceInstance(requestJson, "v5");\r
392                 String respBody = resp.getEntity().toString();\r
393                 assertTrue(respBody.contains("No valid modelVersionId is specified"));\r
394         }\r
395         \r
396         @Test\r
397         public void createServiceInstanceTestNullHttpResp(){\r
398                 new MockUp<RequestsDatabase>() {\r
399             @Mock\r
400             public InfraActiveRequests checkInstanceNameDuplicate (HashMap<String,String> instanceIdMap, String instanceName, String requestScope) {\r
401                 return null;\r
402             }\r
403         };\r
404         new MockUp<CatalogDatabase>() {\r
405             @Mock\r
406             public Service getServiceByModelName (String defaultServiceModelName) {\r
407                 Service serviceRecord = new Service();\r
408                 serviceRecord.setModelUUID("2883992993");\r
409                 return serviceRecord;\r
410             }\r
411         };\r
412         new MockUp<CatalogDatabase>() {\r
413             @Mock\r
414             public ServiceRecipe getServiceRecipeByModelUUID (String uuid,String action) {\r
415                 ServiceRecipe recipe =new ServiceRecipe();\r
416                 recipe.setOrchestrationUri("/test/mso");\r
417                 recipe.setRecipeTimeout(1000);\r
418                 return recipe;\r
419             }\r
420         };\r
421         \r
422         new MockUp<MsoRequest>() {\r
423             @Mock\r
424             public void createRequestRecord (Status status, Action action) {\r
425                 return;\r
426             }\r
427         };\r
428         \r
429         new MockUp<RequestClientFactory>() {\r
430             @Mock\r
431             public RequestClient getRequestClient(String orchestrationURI, MsoJavaProperties props) throws IllegalStateException{\r
432                 RequestClient client = new CamundaClient();\r
433                 client.setUrl("/test/url");\r
434                 return client;\r
435             }\r
436         };\r
437         \r
438         new MockUp<CamundaClient>() {\r
439             @Mock\r
440             public HttpResponse post(String requestId, boolean isBaseVfModule,\r
441                                 int recipeTimeout, String requestAction, String serviceInstanceId,\r
442                                 String vnfId, String vfModuleId, String volumeGroupId, String networkId, String configurationId,\r
443                                 String serviceType, String vnfType, String vfModuleType, String networkType,\r
444                                 String requestDetails, String recipeParamXsd){ \r
445                 return null;\r
446             }\r
447         };\r
448                 ServiceInstances instance = new ServiceInstances();\r
449                 String requestJson = "{\"serviceInstanceId\":\"1882939\","\r
450                                 +"\"vnfInstanceId\":\"1882938\","\r
451                                 +"\"networkInstanceId\":\"1882937\","\r
452                                 +"\"volumeGroupInstanceId\":\"1882935\","\r
453                                 +"\"vfModuleInstanceId\":\"1882934\","\r
454                                 + "\"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
455                 Response resp = instance.createServiceInstance(requestJson, "v2");\r
456                 String respBody = resp.getEntity().toString();\r
457                 assertTrue(respBody.contains("bpelResponse is null"));\r
458         }\r
459         \r
460         @Test\r
461         public void createServiceInstanceNormalNullDBFatch(){\r
462                 new MockUp<RequestsDatabase>() {\r
463             @Mock\r
464             private List<InfraActiveRequests> executeInfraQuery (List <Criterion> criteria, Order order) {\r
465                 return Collections.EMPTY_LIST;\r
466             }\r
467         };\r
468                 ServiceInstances instance = new ServiceInstances();\r
469                 String requestJson = "{\"serviceInstanceId\":\"1882939\","\r
470                                 +"\"vnfInstanceId\":\"1882938\","\r
471                                 +"\"networkInstanceId\":\"1882937\","\r
472                                 +"\"volumeGroupInstanceId\":\"1882935\","\r
473                                 +"\"vfModuleInstanceId\":\"1882934\","\r
474                                 + "\"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
475                 Response resp = instance.createServiceInstance(requestJson, "v2");\r
476                 String respBody = resp.getEntity().toString();\r
477                 assertTrue(respBody.contains("Recipe could not be retrieved from catalog DB null"));\r
478         }\r
479         \r
480         \r
481         @Test\r
482         public void createServiceInstanceInvalidModelVersionId(){\r
483                 ServiceInstances instance = new ServiceInstances();\r
484                 String requestJson = "{\"serviceInstanceId\":\"1882939\","\r
485                                 +"\"vnfInstanceId\":\"1882938\","\r
486                                 +"\"networkInstanceId\":\"1882937\","\r
487                                 +"\"volumeGroupInstanceId\":\"1882935\","\r
488                                 +"\"vfModuleInstanceId\":\"1882934\","\r
489                                 + "\"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
490                 Response resp = instance.createServiceInstance(requestJson, "v5");\r
491                 String respBody = resp.getEntity().toString();\r
492                 assertTrue(respBody.contains("Error parsing request.") && respBody.contains("No valid modelVersionId is specified"));\r
493         }\r
494         \r
495         @Ignore // 1802 merge\r
496         @Test\r
497         public void createServiceInstanceNullInstanceName(){\r
498                 ServiceInstances instance = new ServiceInstances();\r
499                 String requestJson = "{\"serviceInstanceId\":\"1882939\","\r
500                                 +"\"vnfInstanceId\":\"1882938\","\r
501                                 +"\"networkInstanceId\":\"1882937\","\r
502                                 +"\"volumeGroupInstanceId\":\"1882935\","\r
503                                 +"\"vfModuleInstanceId\":\"1882934\","\r
504                                 + "\"requestDetails\": {\"requestInfo\": { \"source\": \"VID\", \"requestorId\": \"zz9999\"},\"requestParameters\": { \"autoBuildVfModules\": false,\"subscriptionServiceType\": \"test\"},\"modelInfo\":{\"modelInvariantId\": \"557ea944-c83e-43cf-9ed7-3a354abd6d34\",\"modelVersion\":\"v2\",\"modelType\":\"service\",\"modelName\":\"serviceModel\"}}}";\r
505                 Response resp = instance.createServiceInstance(requestJson, "v2");\r
506                 String respBody = resp.getEntity().toString();\r
507                 assertTrue(respBody.contains("Error parsing request.") && respBody.contains("No valid instanceName is specified"));\r
508         }\r
509         \r
510         \r
511         @Test\r
512         public void createServiceInstanceNullModelInfo(){\r
513                 ServiceInstances instance = new ServiceInstances();\r
514                 String requestJson = "{\"serviceInstanceId\":\"1882939\","\r
515                                 +"\"vnfInstanceId\":\"1882938\","\r
516                                 +"\"networkInstanceId\":\"1882937\","\r
517                                 +"\"volumeGroupInstanceId\":\"1882935\","\r
518                                 +"\"vfModuleInstanceId\":\"1882934\","\r
519                                 + "\"requestDetails\": {\"requestInfo\": { \"source\": \"VID\", \"requestorId\": \"zz9999\"},\"requestParameters\": { \"autoBuildVfModules\": false}}}";\r
520                 Response resp = instance.createServiceInstance(requestJson, "v2");\r
521                 String respBody = resp.getEntity().toString();\r
522                 assertTrue(respBody.contains("Error parsing request.") && respBody.contains("No valid model-info is specified"));\r
523         }\r
524         \r
525         @Test\r
526         public void createServiceInstanceInvalidModelInvariantId(){\r
527                 ServiceInstances instance = new ServiceInstances();\r
528                 String requestJson = "{\"serviceInstanceId\":\"1882939\","\r
529                                 +"\"vnfInstanceId\":\"1882938\","\r
530                                 +"\"networkInstanceId\":\"1882937\","\r
531                                 +"\"volumeGroupInstanceId\":\"1882935\","\r
532                                 +"\"vfModuleInstanceId\":\"1882934\","\r
533                                 + "\"requestDetails\": {\"requestInfo\": { \"source\": \"VID\", \"requestorId\": \"zz9999\"},\"requestParameters\": { \"autoBuildVfModules\": false},\"modelInfo\":{\"modelInvariantId\": \"1234\"}}}";\r
534                 Response resp = instance.createServiceInstance(requestJson, "v2");\r
535                 String respBody = resp.getEntity().toString();\r
536                 assertTrue(respBody.contains("Error parsing request.") && respBody.contains("No valid modelType is specified"));\r
537         }\r
538         \r
539         @Test\r
540         public void createServiceInstanceNullModelVersion(){\r
541                 ServiceInstances instance = new ServiceInstances();\r
542                 String requestJson = "{\"serviceInstanceId\":\"1882939\","\r
543                                 +"\"vnfInstanceId\":\"1882938\","\r
544                                 +"\"networkInstanceId\":\"1882937\","\r
545                                 +"\"volumeGroupInstanceId\":\"1882935\","\r
546                                 +"\"vfModuleInstanceId\":\"1882934\","\r
547                                 + "\"requestDetails\": {\"requestInfo\": { \"source\": \"VID\", \"requestorId\": \"zz9999\"},\"requestParameters\": { \"autoBuildVfModules\": false},\"modelInfo\":{\"modelInvariantId\": \"557ea944-c83e-43cf-9ed7-3a354abd6d34\"}}}";\r
548                 Response resp = instance.createServiceInstance(requestJson, "v2");\r
549                 String respBody = resp.getEntity().toString();\r
550                 assertTrue(respBody.contains("Error parsing request.") && respBody.contains("No valid modelType is specified"));\r
551         }\r
552         \r
553         \r
554         @Test\r
555         public void createServiceInstanceNullModelType(){\r
556                 ServiceInstances instance = new ServiceInstances();\r
557                 String requestJson = "{\"serviceInstanceId\":\"1882939\","\r
558                                 +"\"vnfInstanceId\":\"1882938\","\r
559                                 +"\"networkInstanceId\":\"1882937\","\r
560                                 +"\"volumeGroupInstanceId\":\"1882935\","\r
561                                 +"\"vfModuleInstanceId\":\"1882934\","\r
562                                 + "\"requestDetails\": {\"requestInfo\": { \"source\": \"VID\", \"requestorId\": \"zz9999\"},\"requestParameters\": { \"autoBuildVfModules\": false},\"modelInfo\":{\"modelInvariantId\": \"557ea944-c83e-43cf-9ed7-3a354abd6d34\",\"modelVersion\":\"v2\"}}}";\r
563                 Response resp = instance.createServiceInstance(requestJson, "v2");\r
564                 String respBody = resp.getEntity().toString();\r
565                 assertTrue(respBody.contains("Error parsing request.") && respBody.contains("No valid modelType is specified"));\r
566         }\r
567         \r
568         @Test\r
569         public void createServiceInstanceInvalidModelType(){\r
570                 ServiceInstances instance = new ServiceInstances();\r
571                 String requestJson = "{\"serviceInstanceId\":\"1882939\","\r
572                                 +"\"vnfInstanceId\":\"1882938\","\r
573                                 +"\"networkInstanceId\":\"1882937\","\r
574                                 +"\"volumeGroupInstanceId\":\"1882935\","\r
575                                 +"\"vfModuleInstanceId\":\"1882934\","\r
576                                 + "\"requestDetails\": {\"requestInfo\": { \"source\": \"VID\", \"requestorId\": \"zz9999\"},\"requestParameters\": { \"autoBuildVfModules\": false},\"modelInfo\":{\"modelInvariantId\": \"557ea944-c83e-43cf-9ed7-3a354abd6d34\",\"modelVersion\":\"v2\",\"modelType\":\"testmodel\"}}}";\r
577                 Response resp = instance.createServiceInstance(requestJson, "v2");\r
578                 String respBody = resp.getEntity().toString();\r
579                 assertTrue(respBody.contains("Mapping of request to JSON object failed."));\r
580         }\r
581         \r
582         @Ignore // 1802 merge\r
583         @Test\r
584         public void createServiceInstanceNullModelName(){\r
585                 ServiceInstances instance = new ServiceInstances();\r
586                 String requestJson = "{\"serviceInstanceId\":\"1882939\","\r
587                                 +"\"vnfInstanceId\":\"1882938\","\r
588                                 +"\"networkInstanceId\":\"1882937\","\r
589                                 +"\"volumeGroupInstanceId\":\"1882935\","\r
590                                 +"\"vfModuleInstanceId\":\"1882934\","\r
591                                 + "\"requestDetails\": {\"requestInfo\": { \"source\": \"VID\", \"requestorId\": \"zz9999\"},\"requestParameters\": { \"autoBuildVfModules\": false,\"subscriptionServiceType\":\"test\"},\"modelInfo\":{\"modelInvariantId\": \"557ea944-c83e-43cf-9ed7-3a354abd6d34\",\"modelVersion\":\"v2\",\"modelType\":\"service\"}}}";\r
592                 Response resp = instance.createServiceInstance(requestJson, "v2");\r
593                 String respBody = resp.getEntity().toString();\r
594                 assertTrue(respBody.contains("Error parsing request.") && respBody.contains("No valid modelName is specified"));\r
595         }\r
596         \r
597         @Ignore // 1802 merge\r
598         @Test\r
599         public void createServiceInstanceInvalidVersionForAutoBuildVfModules(){\r
600                 ServiceInstances instance = new ServiceInstances();\r
601                 String requestJson = "{\"serviceInstanceId\":\"1882939\","\r
602                                 +"\"vnfInstanceId\":\"1882938\","\r
603                                 +"\"networkInstanceId\":\"1882937\","\r
604                                 +"\"volumeGroupInstanceId\":\"1882935\","\r
605                                 +"\"vfModuleInstanceId\":\"1882934\","\r
606                                 + "\"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
607                 Response resp = instance.createServiceInstance(requestJson, "v2");\r
608                 String respBody = resp.getEntity().toString();\r
609                 assertTrue(respBody.contains("Error parsing request.") && respBody.contains("AutoBuildVfModule is not valid in the v2 version"));\r
610         }\r
611         \r
612         @Test\r
613         public void createServiceInstanceNullRequestParameter(){\r
614                 ServiceInstances instance = new ServiceInstances();\r
615                 String requestJson = "{\"serviceInstanceId\":\"1882939\","\r
616                                 +"\"vnfInstanceId\":\"1882938\","\r
617                                 +"\"networkInstanceId\":\"1882937\","\r
618                                 +"\"volumeGroupInstanceId\":\"1882935\","\r
619                                 +"\"vfModuleInstanceId\":\"1882934\","\r
620                                 + "\"requestDetails\": {\"requestInfo\": { \"source\": \"VID\", \"requestorId\": \"zz9999\"},\"requestParameters\": { \"autoBuildVfModules\": false},\"modelInfo\":{\"modelInvariantId\": \"557ea944-c83e-43cf-9ed7-3a354abd6d34\",\"modelVersion\":\"v2\",\"modelType\":\"service\",\"modelName\":\"serviceModel\"}}}";\r
621                 Response resp = instance.createServiceInstance(requestJson, "v2");\r
622                 String respBody = resp.getEntity().toString();\r
623                 assertTrue(respBody.contains("Error parsing request.") && respBody.contains("No valid subscriptionServiceType is specified"));\r
624         }\r
625         \r
626         @Test\r
627         public void createServiceInstanceNullSubscriptionType(){\r
628                 ServiceInstances instance = new ServiceInstances();\r
629                 String requestJson = "{\"serviceInstanceId\":\"1882939\","\r
630                                 +"\"vnfInstanceId\":\"1882938\","\r
631                                 +"\"networkInstanceId\":\"1882937\","\r
632                                 +"\"volumeGroupInstanceId\":\"1882935\","\r
633                                 +"\"vfModuleInstanceId\":\"1882934\","\r
634                                 + "\"requestDetails\": {\"requestInfo\": { \"source\": \"VID\", \"requestorId\": \"zz9999\"},\"requestParameters\": { \"autoBuildVfModules\": false},\"modelInfo\":{\"modelInvariantId\": \"557ea944-c83e-43cf-9ed7-3a354abd6d34\",\"modelVersion\":\"v2\",\"modelType\":\"service\",\"modelName\":\"serviceModel\"}}}";\r
635                 Response resp = instance.createServiceInstance(requestJson, "v2");\r
636                 String respBody = resp.getEntity().toString();\r
637                 assertTrue(respBody.contains("Error parsing request.") && respBody.contains("No valid subscriptionServiceType is specified"));\r
638         }\r
639         \r
640         @Test\r
641         public void createServiceInstanceAnbormalInvalidJson(){\r
642                 ServiceInstances instance = new ServiceInstances();\r
643                 String requestJson = "{\"name\":\"test\"}";\r
644                 Response resp = instance.createServiceInstance(requestJson, "v2");\r
645                 String respStr = resp.getEntity().toString();\r
646                 assertTrue(respStr.contains("Mapping of request to JSON object failed"));\r
647         }\r
648         \r
649         /*** Activate Service Instance Test Cases ***/\r
650         \r
651         @Test\r
652         public void activateServiceInstanceAnbormalInvalidJson(){\r
653                 ServiceInstances instance = new ServiceInstances();\r
654                 String requestJson = "{\"name\":\"test\"}";\r
655                 Response resp = instance.activateServiceInstance(requestJson, "v5","557ea944-c83e-43cf-9ed7-3a354abd6d34");\r
656                 String respStr = resp.getEntity().toString();\r
657                 assertTrue(respStr.contains("Mapping of request to JSON object failed"));\r
658         }\r
659         \r
660         @Test\r
661         public void activateServiceInstanceInvalidModelVersionId(){\r
662                 ServiceInstances instance = new ServiceInstances();\r
663                 String requestJson = "{\"serviceInstanceId\":\"1882939\","\r
664                                 +"\"vnfInstanceId\":\"1882938\","\r
665                                 +"\"networkInstanceId\":\"1882937\","\r
666                                 +"\"volumeGroupInstanceId\":\"1882935\","\r
667                                 +"\"vfModuleInstanceId\":\"1882934\","\r
668                                 + "\"requestDetails\": {\"relatedInstanceList\" :[{\"relatedInstance\":{\"instanceName\":\"testInstance\",\"instanceId\":\"557ea944-c83e-43cf-9ed7-3a354abd6d37\",\"modelInfo\":{\"modelInvariantId\": \"557ea944-c83e-43cf-9ed7-3a354abd6d34\",\"modelVersion\":\"v2\",\"modelType\":\"service\",\"modelName\":\"serviceModel\"}}}],\"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
669                 Response resp = instance.activateServiceInstance(requestJson, "v5","557ea944-c83e-43cf-9ed7-3a354abd6d34");\r
670                 String respStr = resp.getEntity().toString();\r
671                 assertTrue(respStr.contains("Error parsing request.") && respStr.contains("No valid modelVersionId in relatedInstance is specified"));\r
672         }\r
673         \r
674         @Test\r
675         public void activateServiceInstanceInvalidServiceInstanceId(){\r
676                 ServiceInstances instance = new ServiceInstances();\r
677                 String requestJson = "{\"serviceInstanceId\":\"1882939\","\r
678                                 +"\"vnfInstanceId\":\"1882938\","\r
679                                 +"\"networkInstanceId\":\"1882937\","\r
680                                 +"\"volumeGroupInstanceId\":\"1882935\","\r
681                                 +"\"vfModuleInstanceId\":\"1882934\","\r
682                                 + "\"requestDetails\": {\"relatedInstanceList\" :[{\"relatedInstance\":{\"instanceName\":\"testInstance\",\"instanceId\":\"557ea944-c83e-43cf-9ed7-3a354abd6d37\",\"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\"}}}";\r
683                 Response resp = instance.activateServiceInstance(requestJson, "v5","557ea944-c83e-43cf-9ed7-3a354abd6d34");\r
684                 String respStr = resp.getEntity().toString();\r
685                 assertTrue(respStr.contains("Error parsing request.") && respStr.contains("No valid serviceInstanceId matching the serviceInstanceId in request URI is specified"));\r
686         }\r
687 \r
688         @Test\r
689         public void activateServiceInstanceTestNormal(){\r
690                 ServiceInstances instance = new ServiceInstances();\r
691                 String requestJson = "{\"serviceInstanceId\":\"1882939\","\r
692                                 +"\"vnfInstanceId\":\"1882938\","\r
693                                 +"\"networkInstanceId\":\"1882937\","\r
694                                 +"\"volumeGroupInstanceId\":\"1882935\","\r
695                                 +"\"vfModuleInstanceId\":\"1882934\","\r
696                                 + "\"requestDetails\": {\"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\"}}}";\r
697                 Response resp = instance.activateServiceInstance(requestJson, "v5","557ea944-c83e-43cf-9ed7-3a354abd6d34");\r
698                 String respStr = resp.getEntity().toString();\r
699                 assertTrue(respStr.contains("SVC2000"));\r
700         }\r
701         \r
702         /*** Deactivate Service Instance Test Cases ***/\r
703         \r
704         @Test\r
705         public void deactivateServiceInstanceAnbormalInvalidJson(){\r
706                 ServiceInstances instance = new ServiceInstances();\r
707                 String requestJson = "{\"name\":\"test\"}";\r
708                 Response resp = instance.deactivateServiceInstance(requestJson, "v5","557ea944-c83e-43cf-9ed7-3a354abd6d34");\r
709                 String respStr = resp.getEntity().toString();\r
710                 assertTrue(respStr.contains("Mapping of request to JSON object failed"));\r
711         }\r
712         \r
713         @Test\r
714         public void deactivateServiceInstanceInvalidModelVersionId(){\r
715                 ServiceInstances instance = new ServiceInstances();\r
716                 String requestJson = "{\"serviceInstanceId\":\"1882939\","\r
717                                 +"\"vnfInstanceId\":\"1882938\","\r
718                                 +"\"networkInstanceId\":\"1882937\","\r
719                                 +"\"volumeGroupInstanceId\":\"1882935\","\r
720                                 +"\"vfModuleInstanceId\":\"1882934\","\r
721                                 + "\"requestDetails\": {\"relatedInstanceList\" :[{\"relatedInstance\":{\"instanceName\":\"testInstance\",\"instanceId\":\"557ea944-c83e-43cf-9ed7-3a354abd6d37\",\"modelInfo\":{\"modelInvariantId\": \"557ea944-c83e-43cf-9ed7-3a354abd6d34\",\"modelVersion\":\"v2\",\"modelType\":\"service\",\"modelName\":\"serviceModel\"}}}],\"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
722                 Response resp = instance.deactivateServiceInstance(requestJson, "v5","557ea944-c83e-43cf-9ed7-3a354abd6d34");\r
723                 String respStr = resp.getEntity().toString();\r
724                 assertTrue(respStr.contains("Error parsing request.") && respStr.contains("No valid modelVersionId in relatedInstance is specified"));\r
725         }\r
726         \r
727         @Test\r
728         public void deactivateServiceInstanceInvalidServiceInstanceId(){\r
729                 ServiceInstances instance = new ServiceInstances();\r
730                 String requestJson = "{\"serviceInstanceId\":\"1882939\","\r
731                                 +"\"vnfInstanceId\":\"1882938\","\r
732                                 +"\"networkInstanceId\":\"1882937\","\r
733                                 +"\"volumeGroupInstanceId\":\"1882935\","\r
734                                 +"\"vfModuleInstanceId\":\"1882934\","\r
735                                 + "\"requestDetails\": {\"relatedInstanceList\" :[{\"relatedInstance\":{\"instanceName\":\"testInstance\",\"instanceId\":\"557ea944-c83e-43cf-9ed7-3a354abd6d37\",\"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\"}}}";\r
736                 Response resp = instance.deactivateServiceInstance(requestJson, "v5","557ea944-c83e-43cf-9ed7-3a354abd6d34");\r
737                 String respStr = resp.getEntity().toString();\r
738                 assertTrue(respStr.contains("Error parsing request.") && respStr.contains("No valid serviceInstanceId matching the serviceInstanceId in request URI is specified"));\r
739         }\r
740         \r
741         @Test\r
742         public void deactivateServiceInstanceTestNormal(){\r
743                 ServiceInstances instance = new ServiceInstances();\r
744                 String requestJson = "{\"serviceInstanceId\":\"1882939\","\r
745                                 +"\"vnfInstanceId\":\"1882938\","\r
746                                 +"\"networkInstanceId\":\"1882937\","\r
747                                 +"\"volumeGroupInstanceId\":\"1882935\","\r
748                                 +"\"vfModuleInstanceId\":\"1882934\","\r
749                                 + "\"requestDetails\": {\"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\"}}}";\r
750                 Response resp = instance.deactivateServiceInstance(requestJson, "v5","557ea944-c83e-43cf-9ed7-3a354abd6d34");\r
751                 String respStr = resp.getEntity().toString();\r
752                 assertTrue(respStr.contains("SVC2000"));\r
753         }\r
754         \r
755         /*** Delete Service Instance Test Cases ***/\r
756         \r
757         @Test\r
758         public void deleteServiceInstanceAnbormalInvalidJson(){\r
759                 ServiceInstances instance = new ServiceInstances();\r
760                 String requestJson = "{\"name\":\"test\"}";\r
761                 Response resp = instance.deleteServiceInstance(requestJson, "v5","557ea944-c83e-43cf-9ed7-3a354abd6d34");\r
762                 String respStr = resp.getEntity().toString();\r
763                 assertTrue(respStr.contains("Mapping of request to JSON object failed"));\r
764         }\r
765         \r
766         @Test\r
767         public void deleteServiceInstanceInvalidModelVersionId(){\r
768                 ServiceInstances instance = new ServiceInstances();\r
769                 String requestJson = "{\"serviceInstanceId\":\"1882939\","\r
770                                 +"\"vnfInstanceId\":\"1882938\","\r
771                                 +"\"networkInstanceId\":\"1882937\","\r
772                                 +"\"volumeGroupInstanceId\":\"1882935\","\r
773                                 +"\"vfModuleInstanceId\":\"1882934\","\r
774                                 + "\"requestDetails\": {\"relatedInstanceList\" :[{\"relatedInstance\":{\"instanceName\":\"testInstance\",\"instanceId\":\"557ea944-c83e-43cf-9ed7-3a354abd6d37\",\"modelInfo\":{\"modelInvariantId\": \"557ea944-c83e-43cf-9ed7-3a354abd6d34\",\"modelVersion\":\"v2\",\"modelType\":\"service\",\"modelName\":\"serviceModel\"}}}],\"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
775                 Response resp = instance.deleteServiceInstance(requestJson, "v5","557ea944-c83e-43cf-9ed7-3a354abd6d34");\r
776                 String respStr = resp.getEntity().toString();\r
777                 assertTrue(respStr.contains("Error parsing request.") && respStr.contains("No valid modelVersionId is specified"));\r
778         }\r
779         \r
780         @Test\r
781         public void deleteServiceInstanceInvalidServiceInstanceId(){\r
782                 ServiceInstances instance = new ServiceInstances();\r
783                 String requestJson = "{\"serviceInstanceId\":\"1882939\","\r
784                                 +"\"vnfInstanceId\":\"1882938\","\r
785                                 +"\"networkInstanceId\":\"1882937\","\r
786                                 +"\"volumeGroupInstanceId\":\"1882935\","\r
787                                 +"\"vfModuleInstanceId\":\"1882934\","\r
788                                 + "\"requestDetails\": {\"relatedInstanceList\" :[{\"relatedInstance\":{\"instanceName\":\"testInstance\",\"instanceId\":\"557ea944-c83e-43cf-9ed7-3a354abd6d37\",\"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\"}}}";\r
789                 Response resp = instance.deleteServiceInstance(requestJson, "v5","557ea944-c83e-43cf-9ed7-3a354abd6d34");\r
790                 String respStr = resp.getEntity().toString();\r
791                 assertTrue(respStr.contains("Error parsing request.") && respStr.contains("No valid modelVersionId is specified"));\r
792         }\r
793         \r
794         @Test\r
795         public void deleteServiceInstanceTestNormal(){\r
796                 ServiceInstances instance = new ServiceInstances();\r
797                 String requestJson = "{\"serviceInstanceId\":\"1882939\","\r
798                                 +"\"vnfInstanceId\":\"1882938\","\r
799                                 +"\"networkInstanceId\":\"1882937\","\r
800                                 +"\"volumeGroupInstanceId\":\"1882935\","\r
801                                 +"\"vfModuleInstanceId\":\"1882934\","\r
802                                 + "\"requestDetails\": {\"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
803                 Response resp = instance.deleteServiceInstance(requestJson, "v5","557ea944-c83e-43cf-9ed7-3a354abd6d34");\r
804                 String respStr = resp.getEntity().toString();\r
805                 assertTrue(respStr.contains("SVC2000"));\r
806         }\r
807         \r
808         /*** Create Vnf Instance Test Cases ***/\r
809         \r
810         @Ignore // 1802 merge\r
811         @Test\r
812         public void createVNFInstanceTestInvalidCloudConfiguration(){\r
813                 ServiceInstances instance = new ServiceInstances();\r
814                 String requestJson = "{\"serviceInstanceId\":\"1882939\","\r
815                                 +"\"vnfInstanceId\":\"1882938\","\r
816                                 +"\"networkInstanceId\":\"1882937\","\r
817                                 +"\"volumeGroupInstanceId\":\"1882935\","\r
818                                 +"\"vfModuleInstanceId\":\"1882934\","\r
819                                 + "\"requestDetails\": {\"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
820                 Response resp = instance.createVnfInstance(requestJson, "v3","557ea944-c83e-43cf-9ed7-3a354abd6d34");\r
821                 String respStr = resp.getEntity().toString();\r
822                 assertTrue(respStr.contains("Error parsing request.") && respStr.contains("No valid cloudConfiguration is specified"));\r
823         }\r
824         \r
825         @Test\r
826         public void createVNFInstanceTestInvalidIcpCloudRegionId(){\r
827                 ServiceInstances instance = new ServiceInstances();\r
828                 String s = "\"cloudConfiguration\":{}";\r
829                 String requestJson = "{\"serviceInstanceId\":\"1882939\","\r
830                                 +"\"vnfInstanceId\":\"1882938\","\r
831                                 +"\"networkInstanceId\":\"1882937\","\r
832                                 +"\"volumeGroupInstanceId\":\"1882935\","\r
833                                 +"\"vfModuleInstanceId\":\"1882934\","\r
834                                 + "\"requestDetails\": {\"cloudConfiguration\":{}, \"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
835                 Response resp = instance.createVnfInstance(requestJson, "v3","557ea944-c83e-43cf-9ed7-3a354abd6d34");\r
836                 String respStr = resp.getEntity().toString();\r
837                 assertTrue(respStr.contains("Error parsing request.") && respStr.contains("No valid lcpCloudRegionId is specified"));\r
838         }\r
839         \r
840         @Test\r
841         public void createVNFInstanceTestInvalidTenantId(){\r
842                 ServiceInstances instance = new ServiceInstances();\r
843                 String s = "\"cloudConfiguration\":{}";\r
844                 String requestJson = "{\"serviceInstanceId\":\"1882939\","\r
845                                 +"\"vnfInstanceId\":\"1882938\","\r
846                                 +"\"networkInstanceId\":\"1882937\","\r
847                                 +"\"volumeGroupInstanceId\":\"1882935\","\r
848                                 +"\"vfModuleInstanceId\":\"1882934\","\r
849                                 + "\"requestDetails\": {\"cloudConfiguration\":{\"lcpCloudRegionId\":\"2993841\"}, \"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
850                 Response resp = instance.createVnfInstance(requestJson, "v3","557ea944-c83e-43cf-9ed7-3a354abd6d34");\r
851                 String respStr = resp.getEntity().toString();\r
852                 assertTrue(respStr.contains("Error parsing request.") && respStr.contains("No valid tenantId is specified"));\r
853         }\r
854         \r
855         @Test\r
856         public void createVNFInstanceTestNormal(){\r
857 \r
858                 new MockUp<RequestsDatabase>() {\r
859                         @Mock\r
860                         public InfraActiveRequests checkInstanceNameDuplicate (HashMap<String,String> instanceIdMap, String instanceName, String requestScope) {\r
861                                 return null;\r
862                         }\r
863                 };\r
864 \r
865                 new MockUp<RequestsDatabase>() {\r
866                         @Mock\r
867                         public int updateInfraStatus (String requestId, String requestStatus, long progress, String lastModifiedBy) {\r
868                                 return 1;\r
869                         }\r
870                 };\r
871 \r
872                 new MockUp<MsoRequest>() {\r
873                         @Mock\r
874                         public void createRequestRecord (Status status, Action action) {\r
875                                 return;\r
876                         }\r
877                 };\r
878 \r
879                 new MockUp<CatalogDatabase>() {\r
880                         @Mock\r
881                         public Service getServiceByModelName (String defaultServiceModelName) {\r
882                                 Service serviceRecord = new Service();\r
883                                 serviceRecord.setModelUUID("2883992993");\r
884                                 return serviceRecord;\r
885                         }\r
886                 };\r
887 \r
888                 new MockUp<CatalogDatabase>() {\r
889                         @Mock\r
890                         public ServiceRecipe getServiceRecipeByModelUUID (String uuid,String action) {\r
891                                 ServiceRecipe recipe =new ServiceRecipe();\r
892                                 recipe.setOrchestrationUri("/test/mso");\r
893                                 recipe.setRecipeTimeout(1000);\r
894                                 return recipe;\r
895                         }\r
896                 };\r
897                 new MockUp<RequestClientFactory>() {\r
898                         @Mock\r
899                         public RequestClient getRequestClient(String orchestrationURI, MsoJavaProperties props) throws IllegalStateException{\r
900                                 RequestClient client = new CamundaClient();\r
901                                 client.setUrl("/test/url");\r
902                                 return client;\r
903                         }\r
904                 };\r
905                 new MockUp<CatalogDatabase>() {\r
906                         @Mock\r
907                         public VnfResource getVnfResourceByModelCustomizationId(String modelCustomizationId) {\r
908                                 VnfResource vnfResource = new VnfResource();\r
909                                 return vnfResource;\r
910                         }\r
911                 };\r
912 \r
913                 new MockUp<CatalogDatabase>() {\r
914                         @Mock\r
915                         public VnfRecipe getVnfRecipe (String vnfType, String action) {\r
916                                 VnfRecipe recipe =new VnfRecipe();\r
917                                 recipe.setOrchestrationUri("/test/mso");\r
918                                 recipe.setRecipeTimeout(1000);\r
919                                 return recipe;\r
920                         }\r
921                 };\r
922 \r
923 \r
924                 new MockUp<CamundaClient>() {\r
925                         @Mock\r
926                         public HttpResponse post(String requestId, boolean isBaseVfModule,\r
927                                                                          int recipeTimeout, String requestAction, String serviceInstanceId,\r
928                                                                          String vnfId, String vfModuleId, String volumeGroupId, String networkId, String configurationId,\r
929                                                                          String serviceType, String vnfType, String vfModuleType, String networkType,\r
930                                                                          String requestDetails, String recipeParamXsd){\r
931                                 ProtocolVersion pv = new ProtocolVersion("HTTP",1,1);\r
932                                 HttpResponse resp = new BasicHttpResponse(pv,200, "test response");\r
933                                 BasicHttpEntity entity = new BasicHttpEntity();\r
934 \r
935                                 final String body = "{\"response\":\"success\",\"message\":\"success\"}";\r
936                                 InputStream instream = new ByteArrayInputStream(body.getBytes());\r
937                                 entity.setContent(instream);\r
938                                 resp.setEntity(entity);\r
939                                 return resp;\r
940                         }\r
941                 };\r
942 \r
943                 ServiceInstances instance = new ServiceInstances();\r
944                 String s = "\"cloudConfiguration\":{}";\r
945                 String requestJson = "{\"serviceInstanceId\":\"1882939\",\"vnfInstanceId\":\"1882938\"," +\r
946                                 "\"networkInstanceId\":\"1882937\",\"volumeGroupInstanceId\":\"1882935\",\"vfModuleInstanceId\":\"1882934\"," +\r
947                                 "\"requestDetails\":{\"cloudConfiguration\":{\"lcpCloudRegionId\":\"2993841\",\"tenantId\":\"2910032\"}," +\r
948                                 "\"relatedInstanceList\":[{\"relatedInstance\":{\"instanceName\":\"testInstance\",\"instanceId\":\"557ea944-c83e-43cf-9ed7-3a354abd6d34\"," +\r
949                                 "\"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
950                                 "\"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
951                 Response resp = instance.createVnfInstance(requestJson, "v3","557ea944-c83e-43cf-9ed7-3a354abd6d34");\r
952                 String respStr = resp.getEntity().toString();\r
953                 assertTrue(respStr.equals("success"));\r
954         }\r
955         \r
956         /*** Replace Vnf Instance Test Cases ***/\r
957         @Test\r
958         public void replaceVNFInstanceTestNormal(){\r
959                 ServiceInstances instance = new ServiceInstances();\r
960                 String s = "\"cloudConfiguration\":{}";\r
961                 String requestJson = "{\"serviceInstanceId\":\"1882939\","\r
962                                 +"\"vnfInstanceId\":\"1882938\","\r
963                                 +"\"networkInstanceId\":\"1882937\","\r
964                                 +"\"volumeGroupInstanceId\":\"1882935\","\r
965                                 +"\"vfModuleInstanceId\":\"1882934\","\r
966                                 + "\"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
967                 Response resp = instance.replaceVnfInstance(requestJson, "v3","557ea944-c83e-43cf-9ed7-3a354abd6d34","557ea944-c83e-43cf-9ed7-3a354abd6d93");\r
968                 String respStr = resp.getEntity().toString();\r
969                 assertTrue(respStr.contains("SVC2000"));\r
970         }\r
971         \r
972         /*** Update Vnf Instance Test Cases ***/\r
973         \r
974         @Test\r
975         public void updateVNFInstanceTestNormal(){\r
976                 ServiceInstances instance = new ServiceInstances();\r
977                 String s = "\"cloudConfiguration\":{}";\r
978                 String requestJson = "{\"serviceInstanceId\":\"1882939\","\r
979                                 +"\"vnfInstanceId\":\"1882938\","\r
980                                 +"\"networkInstanceId\":\"1882937\","\r
981                                 +"\"volumeGroupInstanceId\":\"1882935\","\r
982                                 +"\"vfModuleInstanceId\":\"1882934\","\r
983                                 + "\"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
984                 Response resp = instance.updateVnfInstance(requestJson, "v3","557ea944-c83e-43cf-9ed7-3a354abd6d34","557ea944-c83e-43cf-9ed7-3a354abd6d93");\r
985                 String respStr = resp.getEntity().toString();\r
986                 assertTrue(respStr.contains("SVC2000"));\r
987         }\r
988         \r
989         /*** Update Vnf Instance Test Cases ***/\r
990 \r
991         @Test\r
992         public void deleteVNFInstanceTestNormal(){\r
993                 ServiceInstances instance = new ServiceInstances();\r
994                 String s = "\"cloudConfiguration\":{}";\r
995                 String requestJson = "{\"serviceInstanceId\":\"1882939\","\r
996                                 +"\"vnfInstanceId\":\"1882938\","\r
997                                 +"\"networkInstanceId\":\"1882937\","\r
998                                 +"\"volumeGroupInstanceId\":\"1882935\","\r
999                                 +"\"vfModuleInstanceId\":\"1882934\","\r
1000                                 + "\"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
1001                 Response resp = instance.deleteVnfInstance(requestJson, "v3","557ea944-c83e-43cf-9ed7-3a354abd6d34","557ea944-c83e-43cf-9ed7-3a354abd6d93");\r
1002                 String respStr = resp.getEntity().toString();\r
1003                 assertTrue(respStr.contains("SVC2000"));\r
1004         }\r
1005 \r
1006         @Test\r
1007         public void createVFModuleTestNormal(){\r
1008 \r
1009                 new MockUp<RequestsDatabase>() {\r
1010                         @Mock\r
1011                         public InfraActiveRequests checkInstanceNameDuplicate (HashMap<String,String> instanceIdMap, String instanceName, String requestScope) {\r
1012                                 return null;\r
1013                         }\r
1014                 };\r
1015 \r
1016                 new MockUp<RequestsDatabase>() {\r
1017                         @Mock\r
1018                         public int updateInfraStatus (String requestId, String requestStatus, long progress, String lastModifiedBy) {\r
1019                                 return 1;\r
1020                         }\r
1021                 };\r
1022 \r
1023                 new MockUp<MsoRequest>() {\r
1024                         @Mock\r
1025                         public void createRequestRecord (Status status, Action action) {\r
1026                                 return;\r
1027                         }\r
1028                 };\r
1029 \r
1030                 new MockUp<CatalogDatabase>() {\r
1031                         @Mock\r
1032                         public Service getServiceByModelName (String defaultServiceModelName) {\r
1033                                 Service serviceRecord = new Service();\r
1034                                 serviceRecord.setModelUUID("2883992993");\r
1035                                 return serviceRecord;\r
1036                         }\r
1037                 };\r
1038 \r
1039                 new MockUp<CatalogDatabase>() {\r
1040                         @Mock\r
1041                         public ServiceRecipe getServiceRecipeByModelUUID (String uuid,String action) {\r
1042                                 ServiceRecipe recipe =new ServiceRecipe();\r
1043                                 recipe.setOrchestrationUri("/test/mso");\r
1044                                 recipe.setRecipeTimeout(1000);\r
1045                                 return recipe;\r
1046                         }\r
1047                 };\r
1048                 new MockUp<RequestClientFactory>() {\r
1049                         @Mock\r
1050                         public RequestClient getRequestClient(String orchestrationURI, MsoJavaProperties props) throws IllegalStateException{\r
1051                                 RequestClient client = new CamundaClient();\r
1052                                 client.setUrl("/test/url");\r
1053                                 return client;\r
1054                         }\r
1055                 };\r
1056                 new MockUp<CatalogDatabase>() {\r
1057                         @Mock\r
1058                         public VnfResource getVnfResourceByModelCustomizationId(String modelCustomizationId) {\r
1059                                 VnfResource vnfResource = new VnfResource();\r
1060                                 return vnfResource;\r
1061                         }\r
1062                 };\r
1063 \r
1064                 new MockUp<CatalogDatabase>() {\r
1065                         @Mock\r
1066                         public VnfComponentsRecipe getVnfComponentsRecipeByVfModuleModelUUId (String vfModuleModelUUId, String vnfComponentType, String action) {\r
1067                                 VnfComponentsRecipe recipe =new VnfComponentsRecipe();\r
1068                                 recipe.setOrchestrationUri("/test/mso");\r
1069                                 recipe.setRecipeTimeout(1000);\r
1070                                 return recipe;\r
1071                         }\r
1072                 };\r
1073                 new MockUp<CatalogDatabase>() {\r
1074                         @Mock\r
1075                         public VfModule getVfModuleByModelUuid(String modelUuid) {\r
1076                                 VfModule vfModule =new VfModule();\r
1077                                 return vfModule;\r
1078                         }\r
1079                 };\r
1080 \r
1081                 new MockUp<CatalogDatabase>() {\r
1082                         @Mock\r
1083                         public VfModuleCustomization getVfModuleCustomizationByModelCustomizationId(String modelCustomizationUuid) {\r
1084                                 VfModuleCustomization vfModuleCustomization =new VfModuleCustomization();\r
1085                                 final VfModule vfModule = new VfModule();\r
1086                                 vfModule.setModelUUID("296e278c-bfa8-496e-b59e-fb1fe715f726");\r
1087                                 vfModuleCustomization.setVfModule(vfModule);\r
1088                                 return vfModuleCustomization;\r
1089                         }\r
1090                 };\r
1091 \r
1092 \r
1093                 new MockUp<CamundaClient>() {\r
1094                         @Mock\r
1095                         public HttpResponse post(String requestId, boolean isBaseVfModule,\r
1096                                                                          int recipeTimeout, String requestAction, String serviceInstanceId,\r
1097                                                                          String vnfId, String vfModuleId, String volumeGroupId, String networkId, String configurationId,\r
1098                                                                          String serviceType, String vnfType, String vfModuleType, String networkType,\r
1099                                                                          String requestDetails, String recipeParamXsd){\r
1100                                 ProtocolVersion pv = new ProtocolVersion("HTTP",1,1);\r
1101                                 HttpResponse resp = new BasicHttpResponse(pv,200, "test response");\r
1102                                 BasicHttpEntity entity = new BasicHttpEntity();\r
1103 \r
1104                                 final String body = "{\"response\":\"success\",\"message\":\"success\"}";\r
1105                                 InputStream instream = new ByteArrayInputStream(body.getBytes());\r
1106                                 entity.setContent(instream);\r
1107                                 resp.setEntity(entity);\r
1108                                 return resp;\r
1109                         }\r
1110                 };\r
1111 \r
1112                 ServiceInstances instance = new ServiceInstances();\r
1113                 String s = "\"cloudConfiguration\":{}";\r
1114                 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
1115                 Response resp = instance.createVfModuleInstance(requestJson, "v5","43b34d6d-1ab2-4c7a-a3a0-5471306550c5", "7b1ead4f-ea06-45c6-921e-124061e5eae7");\r
1116                 String respStr = resp.getEntity().toString();\r
1117                 assertTrue(respStr.equals("success"));\r
1118         }\r
1119 \r
1120         @Test\r
1121         public void createPortConfigurationTestNormal() {\r
1122 \r
1123                 new MockUp<RequestsDatabase>() {\r
1124                         @Mock\r
1125                         public InfraActiveRequests checkInstanceNameDuplicate (HashMap<String,String> instanceIdMap, String instanceName, String requestScope) {\r
1126                                 return null;\r
1127                         }\r
1128                 };\r
1129 \r
1130                 new MockUp<RequestsDatabase>() {\r
1131                         @Mock\r
1132                         public int updateInfraStatus (String requestId, String requestStatus, long progress, String lastModifiedBy) {\r
1133                                 return 1;\r
1134                         }\r
1135                 };\r
1136 \r
1137                 new MockUp<MsoRequest>() {\r
1138                         @Mock\r
1139                         public void createRequestRecord (Status status, Action action) {\r
1140                                 return;\r
1141                         }\r
1142                 };\r
1143 \r
1144                 new MockUp<CamundaClient>() {\r
1145                         @Mock\r
1146                         public HttpResponse post(String requestId, boolean isBaseVfModule,\r
1147                                                                          int recipeTimeout, String requestAction, String serviceInstanceId,\r
1148                                                                          String vnfId, String vfModuleId, String volumeGroupId, String networkId, String configurationId,\r
1149                                                                          String serviceType, String vnfType, String vfModuleType, String networkType,\r
1150                                                                          String requestDetails, String recipeParamXsd){\r
1151                                 ProtocolVersion pv = new ProtocolVersion("HTTP",1,1);\r
1152                                 HttpResponse resp = new BasicHttpResponse(pv,200, "test response");\r
1153                                 BasicHttpEntity entity = new BasicHttpEntity();\r
1154 \r
1155                                 final String body = "{\"response\":\"success\",\"message\":\"success\"}";\r
1156                                 InputStream instream = new ByteArrayInputStream(body.getBytes());\r
1157                                 entity.setContent(instream);\r
1158                                 resp.setEntity(entity);\r
1159                                 return resp;\r
1160                         }\r
1161                 };\r
1162 \r
1163                 ServiceInstances sir = new ServiceInstances();\r
1164                 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
1165                 final Response response = sir.createPortConfiguration(requestJson, "v5", "43b34d6d-1ab2-4c7a-a3a0-5471306550c5");\r
1166         }\r
1167 \r
1168         @Test\r
1169         public void createPortConfigurationTestBlankOrchestrationURI() {\r
1170 \r
1171                 new MockUp<RequestsDatabase>() {\r
1172                         @Mock\r
1173                         public InfraActiveRequests checkInstanceNameDuplicate (HashMap<String,String> instanceIdMap, String instanceName, String requestScope) {\r
1174                                 return null;\r
1175                         }\r
1176                 };\r
1177 \r
1178                 new MockUp<RequestsDatabase>() {\r
1179                         @Mock\r
1180                         public int updateInfraStatus (String requestId, String requestStatus, long progress, String lastModifiedBy) {\r
1181                                 return 1;\r
1182                         }\r
1183                 };\r
1184 \r
1185                 new MockUp<MsoRequest>() {\r
1186                         @Mock\r
1187                         public void createRequestRecord (Status status, Action action) {\r
1188                                 return;\r
1189                         }\r
1190                 };\r
1191 \r
1192                 ServiceInstances sir = new ServiceInstances();\r
1193                 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
1194                 final Response response = sir.createPortConfiguration(requestJson, "v5", "43b34d6d-1ab2-4c7a-a3a0-5471306550c5");\r
1195         }\r
1196 }\r