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