8f21805be6066dfa0514b300443a3fc6198fbd05
[so.git] /
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.Test;\r
31 \r
32 import javax.ws.rs.core.Response;\r
33 \r
34 import static org.junit.Assert.assertFalse;\r
35 import static org.junit.Assert.assertTrue;\r
36 import static org.junit.Assert.fail;\r
37 \r
38 import java.io.ByteArrayInputStream;\r
39 import java.io.InputStream;\r
40 import java.util.Collections;\r
41 import java.util.HashMap;\r
42 import java.util.List;\r
43 \r
44 import org.openecomp.mso.apihandler.common.CamundaClient;\r
45 import org.openecomp.mso.apihandler.common.RequestClient;\r
46 import org.openecomp.mso.apihandler.common.RequestClientFactory;\r
47 import org.openecomp.mso.db.catalog.CatalogDatabase;\r
48 import org.openecomp.mso.db.catalog.beans.Service;\r
49 import org.openecomp.mso.db.catalog.beans.ServiceRecipe;\r
50 import org.openecomp.mso.properties.MsoJavaProperties;\r
51 import org.openecomp.mso.requestsdb.InfraActiveRequests;\r
52 import org.openecomp.mso.requestsdb.RequestsDatabase;\r
53 \r
54 import mockit.Mock;\r
55 import mockit.MockUp;\r
56 \r
57 public class ServiceInstanceTest {\r
58 \r
59     /*** Create Service Instance Test Cases ***/\r
60 \r
61     @Test\r
62     public void createServiceInstanceInvalidModelInfo() {\r
63         ServiceInstances instance = new ServiceInstances();\r
64         String requestJson = "{\"requestDetails\": {\"requestInfo\": { \"source\": \"VID\", \"requestorId\": \"zz9999\"}}}";\r
65         Response resp = instance.createServiceInstance(requestJson, "v5");\r
66         String respBody = resp.getEntity().toString();\r
67         assertTrue(respBody.contains("Error parsing request.  No valid model-info is specified"));\r
68     }\r
69 \r
70     @Test\r
71     public void createServiceInstanceNormalDuplicate() {\r
72         new MockUp<RequestsDatabase>() {\r
73             @Mock\r
74             public InfraActiveRequests checkInstanceNameDuplicate(HashMap<String, String> instanceIdMap, String instanceName, String requestScope) {\r
75                 return new InfraActiveRequests();\r
76             }\r
77         };\r
78         ServiceInstances instance = new ServiceInstances();\r
79         String requestJson = "{\"serviceInstanceId\":\"1882939\","\r
80                 + "\"vnfInstanceId\":\"1882938\","\r
81                 + "\"networkInstanceId\":\"1882937\","\r
82                 + "\"volumeGroupInstanceId\":\"1882935\","\r
83                 + "\"vfModuleInstanceId\":\"1882934\","\r
84                 + "\"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
85         Response resp = instance.createServiceInstance(requestJson, "v2");\r
86         String respBody = resp.getEntity().toString();\r
87         assertTrue(respBody.contains(\r
88                 "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
89     }\r
90 \r
91     @Test\r
92     public void createServiceInstanceTestDBException() {\r
93         new MockUp<RequestsDatabase>() {\r
94             @Mock\r
95             public InfraActiveRequests checkInstanceNameDuplicate(HashMap<String, String> instanceIdMap, String instanceName, String requestScope) {\r
96                 return null;\r
97             }\r
98         };\r
99         new MockUp<CatalogDatabase>() {\r
100             @Mock\r
101             public Service getServiceByModelName(String defaultServiceModelName) {\r
102                 Service serviceRecord = new Service();\r
103                 serviceRecord.setModelUUID("2883992993");\r
104                 return serviceRecord;\r
105             }\r
106         };\r
107         new MockUp<CatalogDatabase>() {\r
108             @Mock\r
109             public ServiceRecipe getServiceRecipeByModelUUID(String uuid, String action) {\r
110                 ServiceRecipe recipe = new ServiceRecipe();\r
111                 recipe.setOrchestrationUri("/test/mso");\r
112                 recipe.setRecipeTimeout(1000);\r
113                 return recipe;\r
114             }\r
115         };\r
116         ServiceInstances instance = new ServiceInstances();\r
117         String requestJson = "{\"serviceInstanceId\":\"1882939\","\r
118                 + "\"vnfInstanceId\":\"1882938\","\r
119                 + "\"networkInstanceId\":\"1882937\","\r
120                 + "\"volumeGroupInstanceId\":\"1882935\","\r
121                 + "\"vfModuleInstanceId\":\"1882934\","\r
122                 + "\"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
123         Response resp = instance.createServiceInstance(requestJson, "v2");\r
124         String respBody = resp.getEntity().toString();\r
125         assertTrue(respBody.contains("Exception while creating record in DB null"));\r
126     }\r
127 \r
128     @Test\r
129     public void createServiceInstanceTestBpmnFail() {\r
130         new MockUp<RequestsDatabase>() {\r
131             @Mock\r
132             public InfraActiveRequests checkInstanceNameDuplicate(HashMap<String, String> instanceIdMap, String instanceName, String requestScope) {\r
133                 return null;\r
134             }\r
135         };\r
136         new MockUp<CatalogDatabase>() {\r
137             @Mock\r
138             public Service getServiceByModelName(String defaultServiceModelName) {\r
139                 Service serviceRecord = new Service();\r
140                 serviceRecord.setModelUUID("2883992993");\r
141                 return serviceRecord;\r
142             }\r
143         };\r
144         new MockUp<CatalogDatabase>() {\r
145             @Mock\r
146             public ServiceRecipe getServiceRecipeByModelUUID(String uuid, String action) {\r
147                 ServiceRecipe recipe = new ServiceRecipe();\r
148                 recipe.setOrchestrationUri("/test/mso");\r
149                 recipe.setRecipeTimeout(1000);\r
150                 return recipe;\r
151             }\r
152         };\r
153 \r
154         new MockUp<MsoRequest>() {\r
155             @Mock\r
156             public void createRequestRecord(Status status, Action action) {\r
157                 return;\r
158             }\r
159         };\r
160         ServiceInstances instance = new ServiceInstances();\r
161         String requestJson = "{\"serviceInstanceId\":\"1882939\","\r
162                 + "\"vnfInstanceId\":\"1882938\","\r
163                 + "\"networkInstanceId\":\"1882937\","\r
164                 + "\"volumeGroupInstanceId\":\"1882935\","\r
165                 + "\"vfModuleInstanceId\":\"1882934\","\r
166                 + "\"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
167         Response resp = instance.createServiceInstance(requestJson, "v2");\r
168         String respBody = resp.getEntity().toString();\r
169         assertTrue(respBody.contains("Failed calling bpmn properties"));\r
170     }\r
171 \r
172     @Test(expected = Exception.class)\r
173     public void createServiceInstanceTest200Http() {\r
174         new MockUp<RequestsDatabase>() {\r
175             @Mock\r
176             public InfraActiveRequests checkInstanceNameDuplicate(HashMap<String, String> instanceIdMap, String instanceName, String requestScope) {\r
177                 return null;\r
178             }\r
179         };\r
180         new MockUp<CatalogDatabase>() {\r
181             @Mock\r
182             public Service getServiceByModelName(String defaultServiceModelName) {\r
183                 Service serviceRecord = new Service();\r
184                 serviceRecord.setModelUUID("2883992993");\r
185                 return serviceRecord;\r
186             }\r
187         };\r
188         new MockUp<CatalogDatabase>() {\r
189             @Mock\r
190             public ServiceRecipe getServiceRecipeByModelUUID(String uuid, String action) {\r
191                 ServiceRecipe recipe = new ServiceRecipe();\r
192                 recipe.setOrchestrationUri("/test/mso");\r
193                 recipe.setRecipeTimeout(1000);\r
194                 return recipe;\r
195             }\r
196         };\r
197 \r
198         new MockUp<MsoRequest>() {\r
199             @Mock\r
200             public void createRequestRecord(Status status, Action action) {\r
201                 return;\r
202             }\r
203         };\r
204 \r
205         new MockUp<RequestClientFactory>() {\r
206             @Mock\r
207             public RequestClient getRequestClient(String orchestrationURI, MsoJavaProperties props) throws IllegalStateException {\r
208                 RequestClient client = new CamundaClient();\r
209                 client.setUrl("/test/url");\r
210                 return client;\r
211             }\r
212         };\r
213 \r
214         new MockUp<CamundaClient>() {\r
215             @Mock\r
216             public HttpResponse post(String requestId, boolean isBaseVfModule,\r
217                                      int recipeTimeout, String requestAction, String serviceInstanceId,\r
218                                      String vnfId, String vfModuleId, String volumeGroupId, String networkId,\r
219                                      String serviceType, String vnfType, String vfModuleType, String networkType,\r
220                                      String requestDetails, String recipeParamXsd) {\r
221                 ProtocolVersion pv = new ProtocolVersion("HTTP", 1, 1);\r
222                 HttpResponse resp = new BasicHttpResponse(pv, 200, "test response");\r
223                 BasicHttpEntity entity = new BasicHttpEntity();\r
224                 String body = "{\"response\":\"success\",\"message\":\"success\"}";\r
225                 InputStream instream = new ByteArrayInputStream(body.getBytes());\r
226                 entity.setContent(instream);\r
227                 resp.setEntity(entity);\r
228                 return resp;\r
229             }\r
230         };\r
231         ServiceInstances instance = new ServiceInstances();\r
232         String requestJson = "{\"serviceInstanceId\":\"1882939\","\r
233                 + "\"vnfInstanceId\":\"1882938\","\r
234                 + "\"networkInstanceId\":\"1882937\","\r
235                 + "\"volumeGroupInstanceId\":\"1882935\","\r
236                 + "\"vfModuleInstanceId\":\"1882934\","\r
237                 + "\"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
238         Response resp = instance.createServiceInstance(requestJson, "v2");\r
239         String respBody = resp.getEntity().toString();\r
240     }\r
241 \r
242     @Test\r
243     public void createServiceInstanceTest500Http() {\r
244         new MockUp<RequestsDatabase>() {\r
245             @Mock\r
246             public InfraActiveRequests checkInstanceNameDuplicate(HashMap<String, String> instanceIdMap, String instanceName, String requestScope) {\r
247                 return null;\r
248             }\r
249         };\r
250         new MockUp<CatalogDatabase>() {\r
251             @Mock\r
252             public Service getServiceByModelName(String defaultServiceModelName) {\r
253                 Service serviceRecord = new Service();\r
254                 serviceRecord.setModelUUID("2883992993");\r
255                 return serviceRecord;\r
256             }\r
257         };\r
258         new MockUp<CatalogDatabase>() {\r
259             @Mock\r
260             public ServiceRecipe getServiceRecipeByModelUUID(String uuid, String action) {\r
261                 ServiceRecipe recipe = new ServiceRecipe();\r
262                 recipe.setOrchestrationUri("/test/mso");\r
263                 recipe.setRecipeTimeout(1000);\r
264                 return recipe;\r
265             }\r
266         };\r
267 \r
268         new MockUp<MsoRequest>() {\r
269             @Mock\r
270             public void createRequestRecord(Status status, Action action) {\r
271                 return;\r
272             }\r
273         };\r
274 \r
275         new MockUp<RequestClientFactory>() {\r
276             @Mock\r
277             public RequestClient getRequestClient(String orchestrationURI, MsoJavaProperties props) throws IllegalStateException {\r
278                 RequestClient client = new CamundaClient();\r
279                 client.setUrl("/test/url");\r
280                 return client;\r
281             }\r
282         };\r
283 \r
284         new MockUp<CamundaClient>() {\r
285             @Mock\r
286             public HttpResponse post(String requestId, boolean isBaseVfModule,\r
287                                      int recipeTimeout, String requestAction, String serviceInstanceId,\r
288                                      String vnfId, String vfModuleId, String volumeGroupId, String networkId,\r
289                                      String serviceType, String vnfType, String vfModuleType, String networkType,\r
290                                      String requestDetails, String recipeParamXsd) {\r
291                 ProtocolVersion pv = new ProtocolVersion("HTTP", 1, 1);\r
292                 HttpResponse resp = new BasicHttpResponse(pv, 500, "test response");\r
293                 BasicHttpEntity entity = new BasicHttpEntity();\r
294                 String body = "{\"response\":\"success\",\"message\":\"success\"}";\r
295                 InputStream instream = new ByteArrayInputStream(body.getBytes());\r
296                 entity.setContent(instream);\r
297                 resp.setEntity(entity);\r
298                 return resp;\r
299             }\r
300         };\r
301         ServiceInstances instance = new ServiceInstances();\r
302         String requestJson = "{\"serviceInstanceId\":\"1882939\","\r
303                 + "\"vnfInstanceId\":\"1882938\","\r
304                 + "\"networkInstanceId\":\"1882937\","\r
305                 + "\"volumeGroupInstanceId\":\"1882935\","\r
306                 + "\"vfModuleInstanceId\":\"1882934\","\r
307                 + "\"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
308         Response resp = instance.createServiceInstance(requestJson, "v2");\r
309         String respBody = resp.getEntity().toString();\r
310         assertTrue(respBody.contains("Request Failed due to BPEL error with HTTP Status"));\r
311     }\r
312 \r
313     @Test\r
314     public void createServiceInstanceTestVnfModelType() {\r
315         new MockUp<RequestsDatabase>() {\r
316             @Mock\r
317             public InfraActiveRequests checkInstanceNameDuplicate(HashMap<String, String> instanceIdMap, String instanceName, String requestScope) {\r
318                 return null;\r
319             }\r
320         };\r
321         new MockUp<CatalogDatabase>() {\r
322             @Mock\r
323             public Service getServiceByModelName(String defaultServiceModelName) {\r
324                 Service serviceRecord = new Service();\r
325                 serviceRecord.setModelUUID("2883992993");\r
326                 return serviceRecord;\r
327             }\r
328         };\r
329         new MockUp<CatalogDatabase>() {\r
330             @Mock\r
331             public ServiceRecipe getServiceRecipeByModelUUID(String uuid, String action) {\r
332                 ServiceRecipe recipe = new ServiceRecipe();\r
333                 recipe.setOrchestrationUri("/test/mso");\r
334                 recipe.setRecipeTimeout(1000);\r
335                 return recipe;\r
336             }\r
337         };\r
338 \r
339         new MockUp<MsoRequest>() {\r
340             @Mock\r
341             public void createRequestRecord(Status status, Action action) {\r
342                 return;\r
343             }\r
344         };\r
345 \r
346         new MockUp<RequestClientFactory>() {\r
347             @Mock\r
348             public RequestClient getRequestClient(String orchestrationURI, MsoJavaProperties props) throws IllegalStateException {\r
349                 RequestClient client = new CamundaClient();\r
350                 client.setUrl("/test/url");\r
351                 return client;\r
352             }\r
353         };\r
354 \r
355         new MockUp<CamundaClient>() {\r
356             @Mock\r
357             public HttpResponse post(String requestId, boolean isBaseVfModule,\r
358                                      int recipeTimeout, String requestAction, String serviceInstanceId,\r
359                                      String vnfId, String vfModuleId, String volumeGroupId, String networkId,\r
360                                      String serviceType, String vnfType, String vfModuleType, String networkType,\r
361                                      String requestDetails, String recipeParamXsd) {\r
362                 ProtocolVersion pv = new ProtocolVersion("HTTP", 1, 1);\r
363                 HttpResponse resp = new BasicHttpResponse(pv, 500, "test response");\r
364                 BasicHttpEntity entity = new BasicHttpEntity();\r
365                 String body = "{\"response\":\"success\",\"message\":\"success\"}";\r
366                 InputStream instream = new ByteArrayInputStream(body.getBytes());\r
367                 entity.setContent(instream);\r
368                 resp.setEntity(entity);\r
369                 return resp;\r
370             }\r
371         };\r
372         ServiceInstances instance = new ServiceInstances();\r
373         String requestJson = "{\"serviceInstanceId\":\"1882939\","\r
374                 + "\"vnfInstanceId\":\"1882938\","\r
375                 + "\"networkInstanceId\":\"1882937\","\r
376                 + "\"volumeGroupInstanceId\":\"1882935\","\r
377                 + "\"vfModuleInstanceId\":\"1882934\","\r
378                 + "\"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
379         Response resp = instance.createServiceInstance(requestJson, "v5");\r
380         String respBody = resp.getEntity().toString();\r
381         assertTrue(respBody.contains("No valid modelVersionId is specified"));\r
382     }\r
383 \r
384     @Test\r
385     public void createServiceInstanceTestNullHttpResp() {\r
386         new MockUp<RequestsDatabase>() {\r
387             @Mock\r
388             public InfraActiveRequests checkInstanceNameDuplicate(HashMap<String, String> instanceIdMap, String instanceName, String requestScope) {\r
389                 return null;\r
390             }\r
391         };\r
392         new MockUp<CatalogDatabase>() {\r
393             @Mock\r
394             public Service getServiceByModelName(String defaultServiceModelName) {\r
395                 Service serviceRecord = new Service();\r
396                 serviceRecord.setModelUUID("2883992993");\r
397                 return serviceRecord;\r
398             }\r
399         };\r
400         new MockUp<CatalogDatabase>() {\r
401             @Mock\r
402             public ServiceRecipe getServiceRecipeByModelUUID(String uuid, String action) {\r
403                 ServiceRecipe recipe = new ServiceRecipe();\r
404                 recipe.setOrchestrationUri("/test/mso");\r
405                 recipe.setRecipeTimeout(1000);\r
406                 return recipe;\r
407             }\r
408         };\r
409 \r
410         new MockUp<MsoRequest>() {\r
411             @Mock\r
412             public void createRequestRecord(Status status, Action action) {\r
413                 return;\r
414             }\r
415         };\r
416 \r
417         new MockUp<RequestClientFactory>() {\r
418             @Mock\r
419             public RequestClient getRequestClient(String orchestrationURI, MsoJavaProperties props) throws IllegalStateException {\r
420                 RequestClient client = new CamundaClient();\r
421                 client.setUrl("/test/url");\r
422                 return client;\r
423             }\r
424         };\r
425 \r
426         new MockUp<CamundaClient>() {\r
427             @Mock\r
428             public HttpResponse post(String requestId, boolean isBaseVfModule,\r
429                                      int recipeTimeout, String requestAction, String serviceInstanceId,\r
430                                      String vnfId, String vfModuleId, String volumeGroupId, String networkId,\r
431                                      String serviceType, String vnfType, String vfModuleType, String networkType,\r
432                                      String requestDetails, String recipeParamXsd) {\r
433                 return null;\r
434             }\r
435         };\r
436         ServiceInstances instance = new ServiceInstances();\r
437         String requestJson = "{\"serviceInstanceId\":\"1882939\","\r
438                 + "\"vnfInstanceId\":\"1882938\","\r
439                 + "\"networkInstanceId\":\"1882937\","\r
440                 + "\"volumeGroupInstanceId\":\"1882935\","\r
441                 + "\"vfModuleInstanceId\":\"1882934\","\r
442                 + "\"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
443         Response resp = instance.createServiceInstance(requestJson, "v2");\r
444         String respBody = resp.getEntity().toString();\r
445         assertTrue(respBody.contains("bpelResponse is null"));\r
446     }\r
447 \r
448     @Test\r
449     public void createServiceInstanceNormalNullDBFatch() {\r
450         new MockUp<RequestsDatabase>() {\r
451             @Mock\r
452             private List<InfraActiveRequests> executeInfraQuery(List<Criterion> criteria, Order order) {\r
453                 return Collections.EMPTY_LIST;\r
454             }\r
455         };\r
456         ServiceInstances instance = new ServiceInstances();\r
457         String requestJson = "{\"serviceInstanceId\":\"1882939\","\r
458                 + "\"vnfInstanceId\":\"1882938\","\r
459                 + "\"networkInstanceId\":\"1882937\","\r
460                 + "\"volumeGroupInstanceId\":\"1882935\","\r
461                 + "\"vfModuleInstanceId\":\"1882934\","\r
462                 + "\"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
463         Response resp = instance.createServiceInstance(requestJson, "v2");\r
464         String respBody = resp.getEntity().toString();\r
465         assertTrue(respBody.contains("Recipe could not be retrieved from catalog DB null"));\r
466     }\r
467 \r
468 \r
469     @Test\r
470     public void createServiceInstanceInvalidModelVersionId() {\r
471         ServiceInstances instance = new ServiceInstances();\r
472         String requestJson = "{\"serviceInstanceId\":\"1882939\","\r
473                 + "\"vnfInstanceId\":\"1882938\","\r
474                 + "\"networkInstanceId\":\"1882937\","\r
475                 + "\"volumeGroupInstanceId\":\"1882935\","\r
476                 + "\"vfModuleInstanceId\":\"1882934\","\r
477                 + "\"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
478         Response resp = instance.createServiceInstance(requestJson, "v5");\r
479         String respBody = resp.getEntity().toString();\r
480         assertTrue(respBody.contains("Error parsing request.  No valid modelVersionId is specified"));\r
481     }\r
482 \r
483     @Test\r
484     public void createServiceInstanceNullInstanceName() {\r
485         ServiceInstances instance = new ServiceInstances();\r
486         String requestJson = "{\"serviceInstanceId\":\"1882939\","\r
487                 + "\"vnfInstanceId\":\"1882938\","\r
488                 + "\"networkInstanceId\":\"1882937\","\r
489                 + "\"volumeGroupInstanceId\":\"1882935\","\r
490                 + "\"vfModuleInstanceId\":\"1882934\","\r
491                 + "\"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
492         Response resp = instance.createServiceInstance(requestJson, "v2");\r
493         String respBody = resp.getEntity().toString();\r
494         assertTrue(respBody.contains("Error parsing request.  No valid instanceName is specified"));\r
495     }\r
496 \r
497 \r
498     @Test\r
499     public void createServiceInstanceNullModelInfo() {\r
500         ServiceInstances instance = new ServiceInstances();\r
501         String requestJson = "{\"serviceInstanceId\":\"1882939\","\r
502                 + "\"vnfInstanceId\":\"1882938\","\r
503                 + "\"networkInstanceId\":\"1882937\","\r
504                 + "\"volumeGroupInstanceId\":\"1882935\","\r
505                 + "\"vfModuleInstanceId\":\"1882934\","\r
506                 + "\"requestDetails\": {\"requestInfo\": { \"source\": \"VID\", \"requestorId\": \"zz9999\"},\"requestParameters\": { \"autoBuildVfModules\": false}}}";\r
507         Response resp = instance.createServiceInstance(requestJson, "v2");\r
508         String respBody = resp.getEntity().toString();\r
509         assertTrue(respBody.contains("Error parsing request.  No valid model-info is specified"));\r
510     }\r
511 \r
512     @Test\r
513     public void createServiceInstanceInvalidModelInvariantId() {\r
514         ServiceInstances instance = new ServiceInstances();\r
515         String requestJson = "{\"serviceInstanceId\":\"1882939\","\r
516                 + "\"vnfInstanceId\":\"1882938\","\r
517                 + "\"networkInstanceId\":\"1882937\","\r
518                 + "\"volumeGroupInstanceId\":\"1882935\","\r
519                 + "\"vfModuleInstanceId\":\"1882934\","\r
520                 + "\"requestDetails\": {\"requestInfo\": { \"source\": \"VID\", \"requestorId\": \"zz9999\"},\"requestParameters\": { \"autoBuildVfModules\": false},\"modelInfo\":{\"modelInvariantId\": \"1234\"}}}";\r
521         Response resp = instance.createServiceInstance(requestJson, "v2");\r
522         String respBody = resp.getEntity().toString();\r
523         assertTrue(respBody.contains("Error parsing request.  No valid modelType is specified"));\r
524     }\r
525 \r
526     @Test\r
527     public void createServiceInstanceNullModelVersion() {\r
528         ServiceInstances instance = new ServiceInstances();\r
529         String requestJson = "{\"serviceInstanceId\":\"1882939\","\r
530                 + "\"vnfInstanceId\":\"1882938\","\r
531                 + "\"networkInstanceId\":\"1882937\","\r
532                 + "\"volumeGroupInstanceId\":\"1882935\","\r
533                 + "\"vfModuleInstanceId\":\"1882934\","\r
534                 + "\"requestDetails\": {\"requestInfo\": { \"source\": \"VID\", \"requestorId\": \"zz9999\"},\"requestParameters\": { \"autoBuildVfModules\": false},\"modelInfo\":{\"modelInvariantId\": \"557ea944-c83e-43cf-9ed7-3a354abd6d34\"}}}";\r
535         Response resp = instance.createServiceInstance(requestJson, "v2");\r
536         String respBody = resp.getEntity().toString();\r
537         assertTrue(respBody.contains("Error parsing request.  No valid modelType is specified"));\r
538     }\r
539 \r
540 \r
541     @Test\r
542     public void createServiceInstanceNullModelType() {\r
543         ServiceInstances instance = new ServiceInstances();\r
544         String requestJson = "{\"serviceInstanceId\":\"1882939\","\r
545                 + "\"vnfInstanceId\":\"1882938\","\r
546                 + "\"networkInstanceId\":\"1882937\","\r
547                 + "\"volumeGroupInstanceId\":\"1882935\","\r
548                 + "\"vfModuleInstanceId\":\"1882934\","\r
549                 + "\"requestDetails\": {\"requestInfo\": { \"source\": \"VID\", \"requestorId\": \"zz9999\"},\"requestParameters\": { \"autoBuildVfModules\": false},\"modelInfo\":{\"modelInvariantId\": \"557ea944-c83e-43cf-9ed7-3a354abd6d34\",\"modelVersion\":\"v2\"}}}";\r
550         Response resp = instance.createServiceInstance(requestJson, "v2");\r
551         String respBody = resp.getEntity().toString();\r
552         assertTrue(respBody.contains("Error parsing request.  No valid modelType is specified"));\r
553     }\r
554 \r
555     @Test\r
556     public void createServiceInstanceInvalidModelType() {\r
557         ServiceInstances instance = new ServiceInstances();\r
558         String requestJson = "{\"serviceInstanceId\":\"1882939\","\r
559                 + "\"vnfInstanceId\":\"1882938\","\r
560                 + "\"networkInstanceId\":\"1882937\","\r
561                 + "\"volumeGroupInstanceId\":\"1882935\","\r
562                 + "\"vfModuleInstanceId\":\"1882934\","\r
563                 + "\"requestDetails\": {\"requestInfo\": { \"source\": \"VID\", \"requestorId\": \"zz9999\"},\"requestParameters\": { \"autoBuildVfModules\": false},\"modelInfo\":{\"modelInvariantId\": \"557ea944-c83e-43cf-9ed7-3a354abd6d34\",\"modelVersion\":\"v2\",\"modelType\":\"testmodel\"}}}";\r
564         Response resp = instance.createServiceInstance(requestJson, "v2");\r
565         String respBody = resp.getEntity().toString();\r
566         assertTrue(respBody.contains("Mapping of request to JSON object failed."));\r
567     }\r
568 \r
569     @Test\r
570     public void createServiceInstanceNullModelName() {\r
571         ServiceInstances instance = new ServiceInstances();\r
572         String requestJson = "{\"serviceInstanceId\":\"1882939\","\r
573                 + "\"vnfInstanceId\":\"1882938\","\r
574                 + "\"networkInstanceId\":\"1882937\","\r
575                 + "\"volumeGroupInstanceId\":\"1882935\","\r
576                 + "\"vfModuleInstanceId\":\"1882934\","\r
577                 + "\"requestDetails\": {\"requestInfo\": { \"source\": \"VID\", \"requestorId\": \"zz9999\"},\"requestParameters\": { \"autoBuildVfModules\": false},\"modelInfo\":{\"modelInvariantId\": \"557ea944-c83e-43cf-9ed7-3a354abd6d34\",\"modelVersion\":\"v2\",\"modelType\":\"service\"}}}";\r
578         Response resp = instance.createServiceInstance(requestJson, "v2");\r
579         String respBody = resp.getEntity().toString();\r
580         assertTrue(respBody.contains("Error parsing request.  No valid modelName is specified"));\r
581     }\r
582 \r
583     @Test\r
584     public void createServiceInstanceInvalidVersionForAutoBuildVfModules() {\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\": true},\"modelInfo\":{\"modelInvariantId\": \"557ea944-c83e-43cf-9ed7-3a354abd6d34\",\"modelVersion\":\"v2\",\"modelType\":\"service\",\"modelName\":\"serviceModel\"}}}";\r
592         Response resp = instance.createServiceInstance(requestJson, "v2");\r
593         String respBody = resp.getEntity().toString();\r
594         assertTrue(respBody.contains("Error parsing request.  AutoBuildVfModule is not valid in the v2 version"));\r
595     }\r
596 \r
597     @Test\r
598     public void createServiceInstanceNullRequestParameter() {\r
599         ServiceInstances instance = new ServiceInstances();\r
600         String requestJson = "{\"serviceInstanceId\":\"1882939\","\r
601                 + "\"vnfInstanceId\":\"1882938\","\r
602                 + "\"networkInstanceId\":\"1882937\","\r
603                 + "\"volumeGroupInstanceId\":\"1882935\","\r
604                 + "\"vfModuleInstanceId\":\"1882934\","\r
605                 + "\"requestDetails\": {\"requestInfo\": { \"source\": \"VID\", \"requestorId\": \"zz9999\"},\"requestParameters\": { \"autoBuildVfModules\": false},\"modelInfo\":{\"modelInvariantId\": \"557ea944-c83e-43cf-9ed7-3a354abd6d34\",\"modelVersion\":\"v2\",\"modelType\":\"service\",\"modelName\":\"serviceModel\"}}}";\r
606         Response resp = instance.createServiceInstance(requestJson, "v2");\r
607         String respBody = resp.getEntity().toString();\r
608         assertTrue(respBody.contains("Error parsing request.  No valid subscriptionServiceType is specified"));\r
609     }\r
610 \r
611     @Test\r
612     public void createServiceInstanceNullSubscriptionType() {\r
613         ServiceInstances instance = new ServiceInstances();\r
614         String requestJson = "{\"serviceInstanceId\":\"1882939\","\r
615                 + "\"vnfInstanceId\":\"1882938\","\r
616                 + "\"networkInstanceId\":\"1882937\","\r
617                 + "\"volumeGroupInstanceId\":\"1882935\","\r
618                 + "\"vfModuleInstanceId\":\"1882934\","\r
619                 + "\"requestDetails\": {\"requestInfo\": { \"source\": \"VID\", \"requestorId\": \"zz9999\"},\"requestParameters\": { \"autoBuildVfModules\": false},\"modelInfo\":{\"modelInvariantId\": \"557ea944-c83e-43cf-9ed7-3a354abd6d34\",\"modelVersion\":\"v2\",\"modelType\":\"service\",\"modelName\":\"serviceModel\"}}}";\r
620         Response resp = instance.createServiceInstance(requestJson, "v2");\r
621         String respBody = resp.getEntity().toString();\r
622         assertTrue(respBody.contains("Error parsing request.  No valid subscriptionServiceType is specified"));\r
623     }\r
624 \r
625     @Test\r
626     public void createServiceInstanceAnbormalInvalidJson() {\r
627         ServiceInstances instance = new ServiceInstances();\r
628         String requestJson = "{\"name\":\"test\"}";\r
629         Response resp = instance.createServiceInstance(requestJson, "v2");\r
630         String respStr = resp.getEntity().toString();\r
631         assertTrue(respStr.contains("Mapping of request to JSON object failed"));\r
632     }\r
633 \r
634     /*** Activate Service Instance Test Cases ***/\r
635 \r
636     @Test\r
637     public void activateServiceInstanceAnbormalInvalidJson() {\r
638         ServiceInstances instance = new ServiceInstances();\r
639         String requestJson = "{\"name\":\"test\"}";\r
640         Response resp = instance.activateServiceInstance(requestJson, "v5", "557ea944-c83e-43cf-9ed7-3a354abd6d34");\r
641         String respStr = resp.getEntity().toString();\r
642         assertTrue(respStr.contains("Mapping of request to JSON object failed"));\r
643     }\r
644 \r
645     @Test\r
646     public void activateServiceInstanceInvalidModelVersionId() {\r
647         ServiceInstances instance = new ServiceInstances();\r
648         String requestJson = "{\"serviceInstanceId\":\"1882939\","\r
649                 + "\"vnfInstanceId\":\"1882938\","\r
650                 + "\"networkInstanceId\":\"1882937\","\r
651                 + "\"volumeGroupInstanceId\":\"1882935\","\r
652                 + "\"vfModuleInstanceId\":\"1882934\","\r
653                 + "\"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
654         Response resp = instance.activateServiceInstance(requestJson, "v5", "557ea944-c83e-43cf-9ed7-3a354abd6d34");\r
655         String respStr = resp.getEntity().toString();\r
656         assertTrue(respStr.contains("Error parsing request.  No valid modelVersionId in relatedInstance is specified"));\r
657     }\r
658 \r
659     @Test\r
660     public void activateServiceInstanceInvalidServiceInstanceId() {\r
661         ServiceInstances instance = new ServiceInstances();\r
662         String requestJson = "{\"serviceInstanceId\":\"1882939\","\r
663                 + "\"vnfInstanceId\":\"1882938\","\r
664                 + "\"networkInstanceId\":\"1882937\","\r
665                 + "\"volumeGroupInstanceId\":\"1882935\","\r
666                 + "\"vfModuleInstanceId\":\"1882934\","\r
667                 + "\"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
668         Response resp = instance.activateServiceInstance(requestJson, "v5", "557ea944-c83e-43cf-9ed7-3a354abd6d34");\r
669         String respStr = resp.getEntity().toString();\r
670         assertTrue(respStr.contains(\r
671                 "Error parsing request.  No valid serviceInstanceId matching the serviceInstanceId in request URI is specified"));\r
672     }\r
673 \r
674     @Test\r
675     public void activateServiceInstanceTestNormal() {\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-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
683         Response resp = instance.activateServiceInstance(requestJson, "v5", "557ea944-c83e-43cf-9ed7-3a354abd6d34");\r
684         String respStr = resp.getEntity().toString();\r
685         assertTrue(respStr.contains("SVC2000"));\r
686     }\r
687 \r
688     /*** Deactivate Service Instance Test Cases ***/\r
689 \r
690     @Test\r
691     public void deactivateServiceInstanceAnbormalInvalidJson() {\r
692         ServiceInstances instance = new ServiceInstances();\r
693         String requestJson = "{\"name\":\"test\"}";\r
694         Response resp = instance.deactivateServiceInstance(requestJson, "v5", "557ea944-c83e-43cf-9ed7-3a354abd6d34");\r
695         String respStr = resp.getEntity().toString();\r
696         assertTrue(respStr.contains("Mapping of request to JSON object failed"));\r
697     }\r
698 \r
699     @Test\r
700     public void deactivateServiceInstanceInvalidModelVersionId() {\r
701         ServiceInstances instance = new ServiceInstances();\r
702         String requestJson = "{\"serviceInstanceId\":\"1882939\","\r
703                 + "\"vnfInstanceId\":\"1882938\","\r
704                 + "\"networkInstanceId\":\"1882937\","\r
705                 + "\"volumeGroupInstanceId\":\"1882935\","\r
706                 + "\"vfModuleInstanceId\":\"1882934\","\r
707                 + "\"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
708         Response resp = instance.deactivateServiceInstance(requestJson, "v5", "557ea944-c83e-43cf-9ed7-3a354abd6d34");\r
709         String respStr = resp.getEntity().toString();\r
710         assertTrue(respStr.contains("Error parsing request.  No valid modelVersionId in relatedInstance is specified"));\r
711     }\r
712 \r
713     @Test\r
714     public void deactivateServiceInstanceInvalidServiceInstanceId() {\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\",\"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
722         Response resp = instance.deactivateServiceInstance(requestJson, "v5", "557ea944-c83e-43cf-9ed7-3a354abd6d34");\r
723         String respStr = resp.getEntity().toString();\r
724         assertTrue(respStr.contains(\r
725                 "Error parsing request.  No valid serviceInstanceId matching the serviceInstanceId in request URI is specified"));\r
726     }\r
727 \r
728     @Test\r
729     public void deactivateServiceInstanceTestNormal() {\r
730         ServiceInstances instance = new ServiceInstances();\r
731         String requestJson = "{\"serviceInstanceId\":\"1882939\","\r
732                 + "\"vnfInstanceId\":\"1882938\","\r
733                 + "\"networkInstanceId\":\"1882937\","\r
734                 + "\"volumeGroupInstanceId\":\"1882935\","\r
735                 + "\"vfModuleInstanceId\":\"1882934\","\r
736                 + "\"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
737         Response resp = instance.deactivateServiceInstance(requestJson, "v5", "557ea944-c83e-43cf-9ed7-3a354abd6d34");\r
738         String respStr = resp.getEntity().toString();\r
739         assertTrue(respStr.contains("SVC2000"));\r
740     }\r
741 \r
742     /*** Delete Service Instance Test Cases ***/\r
743 \r
744     @Test\r
745     public void deleteServiceInstanceAnbormalInvalidJson() {\r
746         ServiceInstances instance = new ServiceInstances();\r
747         String requestJson = "{\"name\":\"test\"}";\r
748         Response resp = instance.deleteServiceInstance(requestJson, "v5", "557ea944-c83e-43cf-9ed7-3a354abd6d34");\r
749         String respStr = resp.getEntity().toString();\r
750         assertTrue(respStr.contains("Mapping of request to JSON object failed"));\r
751     }\r
752 \r
753     @Test\r
754     public void deleteServiceInstanceInvalidModelVersionId() {\r
755         ServiceInstances instance = new ServiceInstances();\r
756         String requestJson = "{\"serviceInstanceId\":\"1882939\","\r
757                 + "\"vnfInstanceId\":\"1882938\","\r
758                 + "\"networkInstanceId\":\"1882937\","\r
759                 + "\"volumeGroupInstanceId\":\"1882935\","\r
760                 + "\"vfModuleInstanceId\":\"1882934\","\r
761                 + "\"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
762         Response resp = instance.deleteServiceInstance(requestJson, "v5", "557ea944-c83e-43cf-9ed7-3a354abd6d34");\r
763         String respStr = resp.getEntity().toString();\r
764         assertTrue(respStr.contains("Error parsing request.  No valid modelVersionId is specified"));\r
765     }\r
766 \r
767     @Test\r
768     public void deleteServiceInstanceInvalidServiceInstanceId() {\r
769         ServiceInstances instance = new ServiceInstances();\r
770         String requestJson = "{\"serviceInstanceId\":\"1882939\","\r
771                 + "\"vnfInstanceId\":\"1882938\","\r
772                 + "\"networkInstanceId\":\"1882937\","\r
773                 + "\"volumeGroupInstanceId\":\"1882935\","\r
774                 + "\"vfModuleInstanceId\":\"1882934\","\r
775                 + "\"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
776         Response resp = instance.deleteServiceInstance(requestJson, "v5", "557ea944-c83e-43cf-9ed7-3a354abd6d34");\r
777         String respStr = resp.getEntity().toString();\r
778         assertTrue(respStr.contains("Error parsing request.  No valid modelVersionId is specified"));\r
779     }\r
780 \r
781     @Test\r
782     public void deleteServiceInstanceTestNormal() {\r
783         ServiceInstances instance = new ServiceInstances();\r
784         String requestJson = "{\"serviceInstanceId\":\"1882939\","\r
785                 + "\"vnfInstanceId\":\"1882938\","\r
786                 + "\"networkInstanceId\":\"1882937\","\r
787                 + "\"volumeGroupInstanceId\":\"1882935\","\r
788                 + "\"vfModuleInstanceId\":\"1882934\","\r
789                 + "\"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
790         Response resp = instance.deleteServiceInstance(requestJson, "v5", "557ea944-c83e-43cf-9ed7-3a354abd6d34");\r
791         String respStr = resp.getEntity().toString();\r
792         assertTrue(respStr.contains("SVC2000"));\r
793     }\r
794 \r
795     /*** Create Vnf Instance Test Cases ***/\r
796 \r
797     @Test\r
798     public void createVNFInstanceTestInvalidCloudConfiguration() {\r
799         ServiceInstances instance = new ServiceInstances();\r
800         String requestJson = "{\"serviceInstanceId\":\"1882939\","\r
801                 + "\"vnfInstanceId\":\"1882938\","\r
802                 + "\"networkInstanceId\":\"1882937\","\r
803                 + "\"volumeGroupInstanceId\":\"1882935\","\r
804                 + "\"vfModuleInstanceId\":\"1882934\","\r
805                 + "\"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
806         Response resp = instance.createVnfInstance(requestJson, "v3", "557ea944-c83e-43cf-9ed7-3a354abd6d34");\r
807         String respStr = resp.getEntity().toString();\r
808         assertTrue(respStr.contains("Error parsing request.  No valid cloudConfiguration is specified"));\r
809     }\r
810 \r
811     @Test\r
812     public void createVNFInstanceTestInvalidIcpCloudRegionId() {\r
813         ServiceInstances instance = new ServiceInstances();\r
814         String s = "\"cloudConfiguration\":{}";\r
815         String requestJson = "{\"serviceInstanceId\":\"1882939\","\r
816                 + "\"vnfInstanceId\":\"1882938\","\r
817                 + "\"networkInstanceId\":\"1882937\","\r
818                 + "\"volumeGroupInstanceId\":\"1882935\","\r
819                 + "\"vfModuleInstanceId\":\"1882934\","\r
820                 + "\"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
821         Response resp = instance.createVnfInstance(requestJson, "v3", "557ea944-c83e-43cf-9ed7-3a354abd6d34");\r
822         String respStr = resp.getEntity().toString();\r
823         assertTrue(respStr.contains("Error parsing request.  No valid lcpCloudRegionId is specified"));\r
824     }\r
825 \r
826     @Test\r
827     public void createVNFInstanceTestInvalidTenantId() {\r
828         ServiceInstances instance = new ServiceInstances();\r
829         String s = "\"cloudConfiguration\":{}";\r
830         String requestJson = "{\"serviceInstanceId\":\"1882939\","\r
831                 + "\"vnfInstanceId\":\"1882938\","\r
832                 + "\"networkInstanceId\":\"1882937\","\r
833                 + "\"volumeGroupInstanceId\":\"1882935\","\r
834                 + "\"vfModuleInstanceId\":\"1882934\","\r
835                 + "\"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
836         Response resp = instance.createVnfInstance(requestJson, "v3", "557ea944-c83e-43cf-9ed7-3a354abd6d34");\r
837         String respStr = resp.getEntity().toString();\r
838         assertTrue(respStr.contains("Error parsing request.  No valid tenantId is specified"));\r
839     }\r
840 \r
841     @Test\r
842     public void createVNFInstanceTestNormal() {\r
843         ServiceInstances instance = new ServiceInstances();\r
844         String s = "\"cloudConfiguration\":{}";\r
845         String requestJson = "{\"serviceInstanceId\":\"1882939\","\r
846                 + "\"vnfInstanceId\":\"1882938\","\r
847                 + "\"networkInstanceId\":\"1882937\","\r
848                 + "\"volumeGroupInstanceId\":\"1882935\","\r
849                 + "\"vfModuleInstanceId\":\"1882934\","\r
850                 + "\"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
851         Response resp = instance.createVnfInstance(requestJson, "v3", "557ea944-c83e-43cf-9ed7-3a354abd6d34");\r
852         String respStr = resp.getEntity().toString();\r
853         assertTrue(respStr.contains("SVC2000"));\r
854     }\r
855 \r
856     /*** Replace Vnf Instance Test Cases ***/\r
857     @Test\r
858     public void replaceVNFInstanceTestNormal() {\r
859         ServiceInstances instance = new ServiceInstances();\r
860         String s = "\"cloudConfiguration\":{}";\r
861         String requestJson = "{\"serviceInstanceId\":\"1882939\","\r
862                 + "\"vnfInstanceId\":\"1882938\","\r
863                 + "\"networkInstanceId\":\"1882937\","\r
864                 + "\"volumeGroupInstanceId\":\"1882935\","\r
865                 + "\"vfModuleInstanceId\":\"1882934\","\r
866                 + "\"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
867         Response resp = instance.replaceVnfInstance(requestJson, "v3", "557ea944-c83e-43cf-9ed7-3a354abd6d34", "557ea944-c83e-43cf-9ed7-3a354abd6d93");\r
868         String respStr = resp.getEntity().toString();\r
869         assertTrue(respStr.contains("SVC2000"));\r
870     }\r
871 \r
872     /*** Update Vnf Instance Test Cases ***/\r
873 \r
874     @Test\r
875     public void updateVNFInstanceTestNormal() {\r
876         ServiceInstances instance = new ServiceInstances();\r
877         String s = "\"cloudConfiguration\":{}";\r
878         String requestJson = "{\"serviceInstanceId\":\"1882939\","\r
879                 + "\"vnfInstanceId\":\"1882938\","\r
880                 + "\"networkInstanceId\":\"1882937\","\r
881                 + "\"volumeGroupInstanceId\":\"1882935\","\r
882                 + "\"vfModuleInstanceId\":\"1882934\","\r
883                 + "\"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
884         Response resp = instance.updateVnfInstance(requestJson, "v3", "557ea944-c83e-43cf-9ed7-3a354abd6d34", "557ea944-c83e-43cf-9ed7-3a354abd6d93");\r
885         String respStr = resp.getEntity().toString();\r
886         assertTrue(respStr.contains("SVC2000"));\r
887     }\r
888 \r
889     /*** Update Vnf Instance Test Cases ***/\r
890 \r
891     @Test\r
892     public void deleteVNFInstanceTestNormal() {\r
893         ServiceInstances instance = new ServiceInstances();\r
894         String s = "\"cloudConfiguration\":{}";\r
895         String requestJson = "{\"serviceInstanceId\":\"1882939\","\r
896                 + "\"vnfInstanceId\":\"1882938\","\r
897                 + "\"networkInstanceId\":\"1882937\","\r
898                 + "\"volumeGroupInstanceId\":\"1882935\","\r
899                 + "\"vfModuleInstanceId\":\"1882934\","\r
900                 + "\"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
901         Response resp = instance.deleteVnfInstance(requestJson, "v3", "557ea944-c83e-43cf-9ed7-3a354abd6d34", "557ea944-c83e-43cf-9ed7-3a354abd6d93");\r
902         String respStr = resp.getEntity().toString();\r
903         assertTrue(respStr.contains("SVC2000"));\r
904     }\r
905 }\r