Swap indexOf with contains
[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.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