Merge "Support resource parameters generated"
[so.git] / mso-api-handlers / mso-api-handler-infra / src / test / java / org / openecomp / mso / apihandlerinfra / E2EServiceInstancesTest.java
1 /*-\r
2  * ============LICENSE_START=======================================================\r
3  * ONAP - SO\r
4  * ================================================================================\r
5  * Copyright (C) 2017 Huawei Technologies Co., Ltd. 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 import static org.junit.Assert.assertTrue;\r
24 \r
25 import java.io.ByteArrayInputStream;\r
26 import java.io.InputStream;\r
27 import java.sql.Timestamp;\r
28 import java.util.ArrayList;\r
29 import java.util.Collections;\r
30 import java.util.List;\r
31 \r
32 import javax.ws.rs.core.Response;\r
33 \r
34 import org.apache.http.HttpResponse;\r
35 import org.apache.http.ProtocolVersion;\r
36 import org.apache.http.entity.BasicHttpEntity;\r
37 import org.apache.http.message.BasicHttpResponse;\r
38 import org.hibernate.HibernateException;\r
39 import org.hibernate.Session;\r
40 import org.hibernate.criterion.Criterion;\r
41 import org.hibernate.criterion.Order;\r
42 import org.hibernate.internal.SessionFactoryImpl;\r
43 import org.junit.Test;\r
44 import org.junit.Ignore;\r
45 import org.mockito.Mockito;\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.Service;\r
51 import org.openecomp.mso.db.catalog.beans.ServiceRecipe;\r
52 import org.openecomp.mso.properties.MsoDatabaseException;\r
53 import org.openecomp.mso.properties.MsoJavaProperties;\r
54 import org.openecomp.mso.requestsdb.InfraActiveRequests;\r
55 import org.openecomp.mso.requestsdb.OperationStatus;\r
56 import org.openecomp.mso.requestsdb.RequestsDatabase;\r
57 \r
58 import mockit.Mock;\r
59 import mockit.MockUp;\r
60 \r
61 public class E2EServiceInstancesTest {\r
62 \r
63         @Test\r
64         public void createE2EServiceInstanceTestSuccess() {\r
65                 new MockUp<RequestsDatabase>() {\r
66                         @Mock\r
67                         public OperationStatus getOperationStatusByServiceName(\r
68                                         String serviceName) {\r
69                                 OperationStatus operationStatus = new OperationStatus();\r
70                                 return operationStatus;\r
71                         }\r
72                 };\r
73                 new MockUp<E2EServiceInstances>() {\r
74                         @Mock\r
75                         private void createOperationStatusRecordForError(Action action,\r
76                                         String requestId) throws MsoDatabaseException {\r
77 \r
78                         }\r
79                 };\r
80                 new MockUp<CatalogDatabase>() {\r
81                         @Mock\r
82                         public Service getServiceByModelName(String modelName) {\r
83                                 Service svc = new Service();\r
84                                 return svc;\r
85                         }\r
86                 };\r
87 \r
88                 new MockUp<CatalogDatabase>() {\r
89                         @Mock\r
90                         public ServiceRecipe getServiceRecipeByModelUUID(String modelUUID,\r
91                                         String action) {\r
92                                 ServiceRecipe rec = new ServiceRecipe();\r
93                                 return rec;\r
94                         }\r
95                 };\r
96 \r
97                 new MockUp<RequestClientFactory>() {\r
98                         @Mock\r
99                         public RequestClient getRequestClient(String orchestrationURI,\r
100                                         MsoJavaProperties props) throws IllegalStateException {\r
101                                 RequestClient client = new CamundaClient();\r
102                                 client.setUrl("/test/url");\r
103                                 return client;\r
104                         }\r
105                 };\r
106 \r
107                 new MockUp<CamundaClient>() {\r
108                         @Mock\r
109                         public HttpResponse post(String requestId, boolean isBaseVfModule,\r
110                                         int recipeTimeout, String requestAction,\r
111                                         String serviceInstanceId, String vnfId, String vfModuleId,\r
112                                         String volumeGroupId, String networkId, String configurationId, String serviceType,\r
113                                         String vnfType, String vfModuleType, String networkType,\r
114                                         String requestDetails, String recipeParamXsd) {\r
115                                 ProtocolVersion pv = new ProtocolVersion("HTTP", 1, 1);\r
116                                 HttpResponse resp = new BasicHttpResponse(pv, 202,\r
117                                                 "test response");\r
118                                 BasicHttpEntity entity = new BasicHttpEntity();\r
119                                 String body = "{\"response\":\"success\",\"message\":\"success\"}";\r
120                                 InputStream instream = new ByteArrayInputStream(body.getBytes());\r
121                                 entity.setContent(instream);\r
122                                 resp.setEntity(entity);\r
123                                 return resp;\r
124                         }\r
125                 };\r
126 \r
127                 E2EServiceInstances instance = new E2EServiceInstances();\r
128                 String request = "{\"service\":{\"name\":\"so_test4\",\"description\":\"so_test2\",\"serviceDefId\":\"60c3e96e-0970-4871-b6e0-3b6de7561519\",\"templateId\":\"592f9437-a9c0-4303-b9f6-c445bb7e9814\",\"parameters\":{\"globalSubscriberId\":\"123457\",\"subscriberName\":\"Customer1\",\"serviceType\":\"voLTE\",\"templateName\":\"voLTE Service:1.0\",\"resources\":[{\"resourceName\":\"vIMS\",\"resourceDefId\":\"60c3e96e-0970-4871-b6e0-3b6de7561516\",\"resourceId\":\"60c3e96e-0970-4871-b6e0-3b6de7561512\",\"nsParameters\":{\"locationConstraints\":[{\"vnfProfileId\":\"zte-vBAS-1.0\",\"locationConstraints\":{\"vimId\":\"4050083f-465f-4838-af1e-47a545222ad0\"}},{\"vnfProfileId\":\"zte-vMME-1.0\",\"locationConstraints\":{\"vimId\":\"4050083f-465f-4838-af1e-47a545222ad0\"}}],\"additionalParamForNs\":{}}},{\"resourceName\":\"vEPC\",\"resourceDefId\":\"61c3e96e-0970-4871-b6e0-3b6de7561516\",\"resourceId\":\"62c3e96e-0970-4871-b6e0-3b6de7561512\",\"nsParameters\":{\"locationConstraints\":[{\"vnfProfileId\":\"zte-CSCF-1.0\",\"locationConstraints\":{\"vimId\":\"4050083f-465f-4838-af1e-47a545222ad1\"}}],\"additionalParamForNs\":{}}},{\"resourceName\":\"underlayvpn\",\"resourceDefId\":\"60c3e96e-0970-4871-b6e0-3b6de7561513\",\"resourceId\":\"60c3e96e-0970-4871-b6e0-3b6de7561514\",\"nsParameters\":{\"locationConstraints\":[],\"additionalParamForNs\":{\"externalDataNetworkName\":\"Flow_out_net\",\"m6000_mng_ip\":\"181.18.20.2\",\"externalCompanyFtpDataNetworkName\":\"Flow_out_net\",\"externalPluginManageNetworkName\":\"plugin_net_2014\",\"externalManageNetworkName\":\"mng_net_2017\",\"sfc_data_network\":\"sfc_data_net_2016\",\"NatIpRange\":\"210.1.1.10-210.1.1.20\",\"location\":\"4050083f-465f-4838-af1e-47a545222ad0\",\"sdncontroller\":\"9b9f02c0-298b-458a-bc9c-be3692e4f35e\"}}},{\"resourceName\":\"overlayvpn\",\"resourceDefId\":\"60c3e96e-0970-4871-b6e0-3b6de7561517\",\"resourceId\":\"60c3e96e-0970-4871-b6e0-3b6de7561518\",\"nsParameters\":{\"locationConstraints\":[],\"additionalParamForNs\":{\"externalDataNetworkName\":\"Flow_out_net\",\"m6000_mng_ip\":\"181.18.20.2\",\"externalCompanyFtpDataNetworkName\":\"Flow_out_net\",\"externalPluginManageNetworkName\":\"plugin_net_2014\",\"externalManageNetworkName\":\"mng_net_2017\",\"sfc_data_network\":\"sfc_data_net_2016\",\"NatIpRange\":\"210.1.1.10-210.1.1.20\",\"location\":\"4050083f-465f-4838-af1e-47a545222ad0\",\"sdncontroller\":\"9b9f02c0-298b-458a-bc9c-be3692e4f35e\"}}}]}}}";\r
129                 Response resp = instance.createE2EServiceInstance(request, "v3");\r
130                 String respStr = resp.getEntity().toString();\r
131                 assertTrue(respStr.contains("SVC2000"));\r
132         }\r
133 \r
134         @Test\r
135         public void createE2EServiceInstanceTestBpelHTTPException() {\r
136                 new MockUp<RequestsDatabase>() {\r
137                         @Mock\r
138                         public OperationStatus getOperationStatusByServiceName(\r
139                                         String serviceName) {\r
140                                 OperationStatus operationStatus = new OperationStatus();\r
141                                 return operationStatus;\r
142                         }\r
143                 };\r
144                 new MockUp<E2EServiceInstances>() {\r
145                         @Mock\r
146                         private void createOperationStatusRecordForError(Action action,\r
147                                         String requestId) throws MsoDatabaseException {\r
148 \r
149                         }\r
150                 };\r
151                 new MockUp<CatalogDatabase>() {\r
152                         @Mock\r
153                         public Service getServiceByModelName(String modelName) {\r
154                                 Service svc = new Service();\r
155                                 return svc;\r
156                         }\r
157                 };\r
158 \r
159                 new MockUp<CatalogDatabase>() {\r
160                         @Mock\r
161                         public ServiceRecipe getServiceRecipeByModelUUID(String modelUUID,\r
162                                         String action) {\r
163                                 ServiceRecipe rec = new ServiceRecipe();\r
164                                 return rec;\r
165                         }\r
166                 };\r
167 \r
168                 new MockUp<RequestClientFactory>() {\r
169                         @Mock\r
170                         public RequestClient getRequestClient(String orchestrationURI,\r
171                                         MsoJavaProperties props) throws IllegalStateException {\r
172                                 RequestClient client = new CamundaClient();\r
173                                 client.setUrl("/test/url");\r
174                                 return client;\r
175                         }\r
176                 };\r
177 \r
178                 new MockUp<CamundaClient>() {\r
179                         @Mock\r
180                         public HttpResponse post(String requestId, boolean isBaseVfModule,\r
181                                         int recipeTimeout, String requestAction,\r
182                                         String serviceInstanceId, String vnfId, String vfModuleId,\r
183                                         String volumeGroupId, String networkId, String configurationId, String serviceType,\r
184                                         String vnfType, String vfModuleType, String networkType,\r
185                                         String requestDetails, String recipeParamXsd) {\r
186                                 ProtocolVersion pv = new ProtocolVersion("HTTP", 1, 1);\r
187                                 HttpResponse resp = new BasicHttpResponse(pv, 500,\r
188                                                 "test response");\r
189                                 BasicHttpEntity entity = new BasicHttpEntity();\r
190                                 String body = "{\"response\":\"success\",\"message\":\"success\"}";\r
191                                 InputStream instream = new ByteArrayInputStream(body.getBytes());\r
192                                 entity.setContent(instream);\r
193                                 resp.setEntity(entity);\r
194                                 return resp;\r
195                         }\r
196                 };\r
197 \r
198                 E2EServiceInstances instance = new E2EServiceInstances();\r
199                 String request = "{\"service\":{\"name\":\"so_test4\",\"description\":\"so_test2\",\"serviceDefId\":\"60c3e96e-0970-4871-b6e0-3b6de7561519\",\"templateId\":\"592f9437-a9c0-4303-b9f6-c445bb7e9814\",\"parameters\":{\"globalSubscriberId\":\"123457\",\"subscriberName\":\"Customer1\",\"serviceType\":\"voLTE\",\"templateName\":\"voLTE Service:1.0\",\"resources\":[{\"resourceName\":\"vIMS\",\"resourceDefId\":\"60c3e96e-0970-4871-b6e0-3b6de7561516\",\"resourceId\":\"60c3e96e-0970-4871-b6e0-3b6de7561512\",\"nsParameters\":{\"locationConstraints\":[{\"vnfProfileId\":\"zte-vBAS-1.0\",\"locationConstraints\":{\"vimId\":\"4050083f-465f-4838-af1e-47a545222ad0\"}},{\"vnfProfileId\":\"zte-vMME-1.0\",\"locationConstraints\":{\"vimId\":\"4050083f-465f-4838-af1e-47a545222ad0\"}}],\"additionalParamForNs\":{}}},{\"resourceName\":\"vEPC\",\"resourceDefId\":\"61c3e96e-0970-4871-b6e0-3b6de7561516\",\"resourceId\":\"62c3e96e-0970-4871-b6e0-3b6de7561512\",\"nsParameters\":{\"locationConstraints\":[{\"vnfProfileId\":\"zte-CSCF-1.0\",\"locationConstraints\":{\"vimId\":\"4050083f-465f-4838-af1e-47a545222ad1\"}}],\"additionalParamForNs\":{}}},{\"resourceName\":\"underlayvpn\",\"resourceDefId\":\"60c3e96e-0970-4871-b6e0-3b6de7561513\",\"resourceId\":\"60c3e96e-0970-4871-b6e0-3b6de7561514\",\"nsParameters\":{\"locationConstraints\":[],\"additionalParamForNs\":{\"externalDataNetworkName\":\"Flow_out_net\",\"m6000_mng_ip\":\"181.18.20.2\",\"externalCompanyFtpDataNetworkName\":\"Flow_out_net\",\"externalPluginManageNetworkName\":\"plugin_net_2014\",\"externalManageNetworkName\":\"mng_net_2017\",\"sfc_data_network\":\"sfc_data_net_2016\",\"NatIpRange\":\"210.1.1.10-210.1.1.20\",\"location\":\"4050083f-465f-4838-af1e-47a545222ad0\",\"sdncontroller\":\"9b9f02c0-298b-458a-bc9c-be3692e4f35e\"}}},{\"resourceName\":\"overlayvpn\",\"resourceDefId\":\"60c3e96e-0970-4871-b6e0-3b6de7561517\",\"resourceId\":\"60c3e96e-0970-4871-b6e0-3b6de7561518\",\"nsParameters\":{\"locationConstraints\":[],\"additionalParamForNs\":{\"externalDataNetworkName\":\"Flow_out_net\",\"m6000_mng_ip\":\"181.18.20.2\",\"externalCompanyFtpDataNetworkName\":\"Flow_out_net\",\"externalPluginManageNetworkName\":\"plugin_net_2014\",\"externalManageNetworkName\":\"mng_net_2017\",\"sfc_data_network\":\"sfc_data_net_2016\",\"NatIpRange\":\"210.1.1.10-210.1.1.20\",\"location\":\"4050083f-465f-4838-af1e-47a545222ad0\",\"sdncontroller\":\"9b9f02c0-298b-458a-bc9c-be3692e4f35e\"}}}]}}}";\r
200                 Response resp = instance.createE2EServiceInstance(request, "v3");\r
201                 String respStr = resp.getEntity().toString();\r
202                 assertTrue(respStr.contains("SVC2000"));\r
203         }\r
204 \r
205         @Test\r
206         public void createE2EServiceInstanceTestBpelHTTPExceptionWithNullREsponseBody() {\r
207                 new MockUp<RequestsDatabase>() {\r
208                         @Mock\r
209                         public OperationStatus getOperationStatusByServiceName(\r
210                                         String serviceName) {\r
211                                 OperationStatus operationStatus = new OperationStatus();\r
212                                 return operationStatus;\r
213                         }\r
214                 };\r
215                 new MockUp<E2EServiceInstances>() {\r
216                         @Mock\r
217                         private void createOperationStatusRecordForError(Action action,\r
218                                         String requestId) throws MsoDatabaseException {\r
219 \r
220                         }\r
221                 };\r
222                 new MockUp<CatalogDatabase>() {\r
223                         @Mock\r
224                         public Service getServiceByModelName(String modelName) {\r
225                                 Service svc = new Service();\r
226                                 return svc;\r
227                         }\r
228                 };\r
229 \r
230                 new MockUp<CatalogDatabase>() {\r
231                         @Mock\r
232                         public ServiceRecipe getServiceRecipeByModelUUID(String modelUUID,\r
233                                         String action) {\r
234                                 ServiceRecipe rec = new ServiceRecipe();\r
235                                 return rec;\r
236                         }\r
237                 };\r
238 \r
239                 new MockUp<RequestClientFactory>() {\r
240                         @Mock\r
241                         public RequestClient getRequestClient(String orchestrationURI,\r
242                                         MsoJavaProperties props) throws IllegalStateException {\r
243                                 RequestClient client = new CamundaClient();\r
244                                 client.setUrl("/test/url");\r
245                                 return client;\r
246                         }\r
247                 };\r
248 \r
249                 new MockUp<CamundaClient>() {\r
250                         @Mock\r
251                         public HttpResponse post(String requestId, boolean isBaseVfModule,\r
252                                         int recipeTimeout, String requestAction,\r
253                                         String serviceInstanceId, String vnfId, String vfModuleId,\r
254                                         String volumeGroupId, String networkId, String configurationId, String serviceType,\r
255                                         String vnfType, String vfModuleType, String networkType,\r
256                                         String requestDetails, String recipeParamXsd) {\r
257                                 ProtocolVersion pv = new ProtocolVersion("HTTP", 1, 1);\r
258                                 HttpResponse resp = new BasicHttpResponse(pv, 500,\r
259                                                 "test response");\r
260                                 BasicHttpEntity entity = new BasicHttpEntity();\r
261                                 String body = "{\"response\":\"\",\"message\":\"success\"}";\r
262                                 InputStream instream = new ByteArrayInputStream(body.getBytes());\r
263                                 entity.setContent(instream);\r
264                                 resp.setEntity(entity);\r
265                                 return resp;\r
266                         }\r
267                 };\r
268 \r
269                 E2EServiceInstances instance = new E2EServiceInstances();\r
270                 String request = "{\"service\":{\"name\":\"so_test4\",\"description\":\"so_test2\",\"serviceDefId\":\"60c3e96e-0970-4871-b6e0-3b6de7561519\",\"templateId\":\"592f9437-a9c0-4303-b9f6-c445bb7e9814\",\"parameters\":{\"globalSubscriberId\":\"123457\",\"subscriberName\":\"Customer1\",\"serviceType\":\"voLTE\",\"templateName\":\"voLTE Service:1.0\",\"resources\":[{\"resourceName\":\"vIMS\",\"resourceDefId\":\"60c3e96e-0970-4871-b6e0-3b6de7561516\",\"resourceId\":\"60c3e96e-0970-4871-b6e0-3b6de7561512\",\"nsParameters\":{\"locationConstraints\":[{\"vnfProfileId\":\"zte-vBAS-1.0\",\"locationConstraints\":{\"vimId\":\"4050083f-465f-4838-af1e-47a545222ad0\"}},{\"vnfProfileId\":\"zte-vMME-1.0\",\"locationConstraints\":{\"vimId\":\"4050083f-465f-4838-af1e-47a545222ad0\"}}],\"additionalParamForNs\":{}}},{\"resourceName\":\"vEPC\",\"resourceDefId\":\"61c3e96e-0970-4871-b6e0-3b6de7561516\",\"resourceId\":\"62c3e96e-0970-4871-b6e0-3b6de7561512\",\"nsParameters\":{\"locationConstraints\":[{\"vnfProfileId\":\"zte-CSCF-1.0\",\"locationConstraints\":{\"vimId\":\"4050083f-465f-4838-af1e-47a545222ad1\"}}],\"additionalParamForNs\":{}}},{\"resourceName\":\"underlayvpn\",\"resourceDefId\":\"60c3e96e-0970-4871-b6e0-3b6de7561513\",\"resourceId\":\"60c3e96e-0970-4871-b6e0-3b6de7561514\",\"nsParameters\":{\"locationConstraints\":[],\"additionalParamForNs\":{\"externalDataNetworkName\":\"Flow_out_net\",\"m6000_mng_ip\":\"181.18.20.2\",\"externalCompanyFtpDataNetworkName\":\"Flow_out_net\",\"externalPluginManageNetworkName\":\"plugin_net_2014\",\"externalManageNetworkName\":\"mng_net_2017\",\"sfc_data_network\":\"sfc_data_net_2016\",\"NatIpRange\":\"210.1.1.10-210.1.1.20\",\"location\":\"4050083f-465f-4838-af1e-47a545222ad0\",\"sdncontroller\":\"9b9f02c0-298b-458a-bc9c-be3692e4f35e\"}}},{\"resourceName\":\"overlayvpn\",\"resourceDefId\":\"60c3e96e-0970-4871-b6e0-3b6de7561517\",\"resourceId\":\"60c3e96e-0970-4871-b6e0-3b6de7561518\",\"nsParameters\":{\"locationConstraints\":[],\"additionalParamForNs\":{\"externalDataNetworkName\":\"Flow_out_net\",\"m6000_mng_ip\":\"181.18.20.2\",\"externalCompanyFtpDataNetworkName\":\"Flow_out_net\",\"externalPluginManageNetworkName\":\"plugin_net_2014\",\"externalManageNetworkName\":\"mng_net_2017\",\"sfc_data_network\":\"sfc_data_net_2016\",\"NatIpRange\":\"210.1.1.10-210.1.1.20\",\"location\":\"4050083f-465f-4838-af1e-47a545222ad0\",\"sdncontroller\":\"9b9f02c0-298b-458a-bc9c-be3692e4f35e\"}}}]}}}";\r
271                 Response resp = instance.createE2EServiceInstance(request, "v3");\r
272                 String respStr = resp.getEntity().toString();\r
273                 assertTrue(respStr.contains("SVC2000"));\r
274         }\r
275 \r
276         @Test\r
277         public void createE2EServiceInstanceTestNullBPELResponse() {\r
278                 new MockUp<RequestsDatabase>() {\r
279                         @Mock\r
280                         public OperationStatus getOperationStatusByServiceName(\r
281                                         String serviceName) {\r
282                                 OperationStatus operationStatus = new OperationStatus();\r
283                                 return operationStatus;\r
284                         }\r
285                 };\r
286                 new MockUp<E2EServiceInstances>() {\r
287                         @Mock\r
288                         private void createOperationStatusRecordForError(Action action,\r
289                                         String requestId) throws MsoDatabaseException {\r
290 \r
291                         }\r
292                 };\r
293                 new MockUp<CatalogDatabase>() {\r
294                         @Mock\r
295                         public Service getServiceByModelName(String modelName) {\r
296                                 Service svc = new Service();\r
297                                 return svc;\r
298                         }\r
299                 };\r
300 \r
301                 new MockUp<CatalogDatabase>() {\r
302                         @Mock\r
303                         public ServiceRecipe getServiceRecipeByModelUUID(String modelUUID,\r
304                                         String action) {\r
305                                 ServiceRecipe rec = new ServiceRecipe();\r
306                                 return rec;\r
307                         }\r
308                 };\r
309 \r
310                 new MockUp<RequestClientFactory>() {\r
311                         @Mock\r
312                         public RequestClient getRequestClient(String orchestrationURI,\r
313                                         MsoJavaProperties props) throws IllegalStateException {\r
314                                 RequestClient client = new CamundaClient();\r
315                                 client.setUrl("/test/url");\r
316                                 return client;\r
317                         }\r
318                 };\r
319 \r
320                 new MockUp<CamundaClient>() {\r
321                         @Mock\r
322                         public HttpResponse post(String requestId, boolean isBaseVfModule,\r
323                                         int recipeTimeout, String requestAction,\r
324                                         String serviceInstanceId, String vnfId, String vfModuleId,\r
325                                         String volumeGroupId, String networkId, String configurationId, String serviceType,\r
326                                         String vnfType, String vfModuleType, String networkType,\r
327                                         String requestDetails, String recipeParamXsd) {\r
328                                 HttpResponse resp = null;\r
329                                 return resp;\r
330                         }\r
331                 };\r
332 \r
333                 E2EServiceInstances instance = new E2EServiceInstances();\r
334                 String request = "{\"service\":{\"name\":\"so_test4\",\"description\":\"so_test2\",\"serviceDefId\":\"60c3e96e-0970-4871-b6e0-3b6de7561519\",\"templateId\":\"592f9437-a9c0-4303-b9f6-c445bb7e9814\",\"parameters\":{\"globalSubscriberId\":\"123457\",\"subscriberName\":\"Customer1\",\"serviceType\":\"voLTE\",\"templateName\":\"voLTE Service:1.0\",\"resources\":[{\"resourceName\":\"vIMS\",\"resourceDefId\":\"60c3e96e-0970-4871-b6e0-3b6de7561516\",\"resourceId\":\"60c3e96e-0970-4871-b6e0-3b6de7561512\",\"nsParameters\":{\"locationConstraints\":[{\"vnfProfileId\":\"zte-vBAS-1.0\",\"locationConstraints\":{\"vimId\":\"4050083f-465f-4838-af1e-47a545222ad0\"}},{\"vnfProfileId\":\"zte-vMME-1.0\",\"locationConstraints\":{\"vimId\":\"4050083f-465f-4838-af1e-47a545222ad0\"}}],\"additionalParamForNs\":{}}},{\"resourceName\":\"vEPC\",\"resourceDefId\":\"61c3e96e-0970-4871-b6e0-3b6de7561516\",\"resourceId\":\"62c3e96e-0970-4871-b6e0-3b6de7561512\",\"nsParameters\":{\"locationConstraints\":[{\"vnfProfileId\":\"zte-CSCF-1.0\",\"locationConstraints\":{\"vimId\":\"4050083f-465f-4838-af1e-47a545222ad1\"}}],\"additionalParamForNs\":{}}},{\"resourceName\":\"underlayvpn\",\"resourceDefId\":\"60c3e96e-0970-4871-b6e0-3b6de7561513\",\"resourceId\":\"60c3e96e-0970-4871-b6e0-3b6de7561514\",\"nsParameters\":{\"locationConstraints\":[],\"additionalParamForNs\":{\"externalDataNetworkName\":\"Flow_out_net\",\"m6000_mng_ip\":\"181.18.20.2\",\"externalCompanyFtpDataNetworkName\":\"Flow_out_net\",\"externalPluginManageNetworkName\":\"plugin_net_2014\",\"externalManageNetworkName\":\"mng_net_2017\",\"sfc_data_network\":\"sfc_data_net_2016\",\"NatIpRange\":\"210.1.1.10-210.1.1.20\",\"location\":\"4050083f-465f-4838-af1e-47a545222ad0\",\"sdncontroller\":\"9b9f02c0-298b-458a-bc9c-be3692e4f35e\"}}},{\"resourceName\":\"overlayvpn\",\"resourceDefId\":\"60c3e96e-0970-4871-b6e0-3b6de7561517\",\"resourceId\":\"60c3e96e-0970-4871-b6e0-3b6de7561518\",\"nsParameters\":{\"locationConstraints\":[],\"additionalParamForNs\":{\"externalDataNetworkName\":\"Flow_out_net\",\"m6000_mng_ip\":\"181.18.20.2\",\"externalCompanyFtpDataNetworkName\":\"Flow_out_net\",\"externalPluginManageNetworkName\":\"plugin_net_2014\",\"externalManageNetworkName\":\"mng_net_2017\",\"sfc_data_network\":\"sfc_data_net_2016\",\"NatIpRange\":\"210.1.1.10-210.1.1.20\",\"location\":\"4050083f-465f-4838-af1e-47a545222ad0\",\"sdncontroller\":\"9b9f02c0-298b-458a-bc9c-be3692e4f35e\"}}}]}}}";\r
335                 Response resp = instance.createE2EServiceInstance(request, "v3");\r
336                 String respStr = resp.getEntity().toString();\r
337                 assertTrue(respStr.contains("SVC2000"));\r
338         }\r
339 \r
340         @Test\r
341         public void createE2EServiceInstanceTestBPMNNullREsponse() {\r
342                 new MockUp<RequestsDatabase>() {\r
343                         @Mock\r
344                         public OperationStatus getOperationStatusByServiceName(\r
345                                         String serviceName) {\r
346                                 OperationStatus operationStatus = new OperationStatus();\r
347                                 return operationStatus;\r
348                         }\r
349                 };\r
350                 new MockUp<E2EServiceInstances>() {\r
351                         @Mock\r
352                         private void createOperationStatusRecordForError(Action action,\r
353                                         String requestId) throws MsoDatabaseException {\r
354 \r
355                         }\r
356                 };\r
357                 new MockUp<CatalogDatabase>() {\r
358                         @Mock\r
359                         public Service getServiceByModelName(String modelName) {\r
360                                 Service svc = new Service();\r
361                                 return svc;\r
362                         }\r
363                 };\r
364 \r
365                 new MockUp<CatalogDatabase>() {\r
366                         @Mock\r
367                         public ServiceRecipe getServiceRecipeByModelUUID(String modelUUID,\r
368                                         String action) {\r
369                                 ServiceRecipe rec = new ServiceRecipe();\r
370                                 return rec;\r
371                         }\r
372                 };\r
373 \r
374                 new MockUp<RequestClientFactory>() {\r
375                         @Mock\r
376                         public RequestClient getRequestClient(String orchestrationURI,\r
377                                         MsoJavaProperties props) throws IllegalStateException {\r
378                                 RequestClient client = new CamundaClient();\r
379                                 client.setUrl("/test/url");\r
380                                 return client;\r
381                         }\r
382                 };\r
383 \r
384                 new MockUp<CamundaClient>() {\r
385                         @Mock\r
386                         public HttpResponse post(String camundaReqXML, String requestId,\r
387                                         String requestTimeout, String schemaVersion,\r
388                                         String serviceInstanceId, String action) {\r
389                                 HttpResponse resp = null;\r
390                                 return resp;\r
391                         }\r
392                 };\r
393                 E2EServiceInstances instance = new E2EServiceInstances();\r
394                 String request = "{\"service\":{\"name\":\"so_test4\",\"description\":\"so_test2\",\"serviceDefId\":\"60c3e96e-0970-4871-b6e0-3b6de7561519\",\"templateId\":\"592f9437-a9c0-4303-b9f6-c445bb7e9814\",\"parameters\":{\"globalSubscriberId\":\"123457\",\"subscriberName\":\"Customer1\",\"serviceType\":\"voLTE\",\"templateName\":\"voLTE Service:1.0\",\"resources\":[{\"resourceName\":\"vIMS\",\"resourceDefId\":\"60c3e96e-0970-4871-b6e0-3b6de7561516\",\"resourceId\":\"60c3e96e-0970-4871-b6e0-3b6de7561512\",\"nsParameters\":{\"locationConstraints\":[{\"vnfProfileId\":\"zte-vBAS-1.0\",\"locationConstraints\":{\"vimId\":\"4050083f-465f-4838-af1e-47a545222ad0\"}},{\"vnfProfileId\":\"zte-vMME-1.0\",\"locationConstraints\":{\"vimId\":\"4050083f-465f-4838-af1e-47a545222ad0\"}}],\"additionalParamForNs\":{}}},{\"resourceName\":\"vEPC\",\"resourceDefId\":\"61c3e96e-0970-4871-b6e0-3b6de7561516\",\"resourceId\":\"62c3e96e-0970-4871-b6e0-3b6de7561512\",\"nsParameters\":{\"locationConstraints\":[{\"vnfProfileId\":\"zte-CSCF-1.0\",\"locationConstraints\":{\"vimId\":\"4050083f-465f-4838-af1e-47a545222ad1\"}}],\"additionalParamForNs\":{}}},{\"resourceName\":\"underlayvpn\",\"resourceDefId\":\"60c3e96e-0970-4871-b6e0-3b6de7561513\",\"resourceId\":\"60c3e96e-0970-4871-b6e0-3b6de7561514\",\"nsParameters\":{\"locationConstraints\":[],\"additionalParamForNs\":{\"externalDataNetworkName\":\"Flow_out_net\",\"m6000_mng_ip\":\"181.18.20.2\",\"externalCompanyFtpDataNetworkName\":\"Flow_out_net\",\"externalPluginManageNetworkName\":\"plugin_net_2014\",\"externalManageNetworkName\":\"mng_net_2017\",\"sfc_data_network\":\"sfc_data_net_2016\",\"NatIpRange\":\"210.1.1.10-210.1.1.20\",\"location\":\"4050083f-465f-4838-af1e-47a545222ad0\",\"sdncontroller\":\"9b9f02c0-298b-458a-bc9c-be3692e4f35e\"}}},{\"resourceName\":\"overlayvpn\",\"resourceDefId\":\"60c3e96e-0970-4871-b6e0-3b6de7561517\",\"resourceId\":\"60c3e96e-0970-4871-b6e0-3b6de7561518\",\"nsParameters\":{\"locationConstraints\":[],\"additionalParamForNs\":{\"externalDataNetworkName\":\"Flow_out_net\",\"m6000_mng_ip\":\"181.18.20.2\",\"externalCompanyFtpDataNetworkName\":\"Flow_out_net\",\"externalPluginManageNetworkName\":\"plugin_net_2014\",\"externalManageNetworkName\":\"mng_net_2017\",\"sfc_data_network\":\"sfc_data_net_2016\",\"NatIpRange\":\"210.1.1.10-210.1.1.20\",\"location\":\"4050083f-465f-4838-af1e-47a545222ad0\",\"sdncontroller\":\"9b9f02c0-298b-458a-bc9c-be3692e4f35e\"}}}]}}}";\r
395                 Response resp = instance.createE2EServiceInstance(request, "v3");\r
396                 String respStr = resp.getEntity().toString();\r
397                 assertTrue(respStr.contains("SVC2000"));\r
398         }\r
399 \r
400         @Test\r
401         public void createE2EServiceInstanceTestNullBpmn() {\r
402                 new MockUp<RequestsDatabase>() {\r
403                         @Mock\r
404                         public OperationStatus getOperationStatusByServiceName(\r
405                                         String serviceName) {\r
406                                 OperationStatus operationStatus = new OperationStatus();\r
407                                 return operationStatus;\r
408                         }\r
409                 };\r
410 \r
411                 new MockUp<E2EServiceInstances>() {\r
412                         @Mock\r
413                         private void createOperationStatusRecordForError(Action action,\r
414                                         String requestId) throws MsoDatabaseException {\r
415 \r
416                         }\r
417                 };\r
418                 new MockUp<CatalogDatabase>() {\r
419                         @Mock\r
420                         public Service getServiceByModelName(String modelName) {\r
421                                 Service svc = new Service();\r
422                                 return svc;\r
423                         }\r
424                 };\r
425 \r
426                 new MockUp<CatalogDatabase>() {\r
427                         @Mock\r
428                         public ServiceRecipe getServiceRecipeByModelUUID(String modelUUID,\r
429                                         String action) {\r
430                                 ServiceRecipe rec = new ServiceRecipe();\r
431                                 return rec;\r
432                         }\r
433                 };\r
434                 E2EServiceInstances instance = new E2EServiceInstances();\r
435                 String request = "{\"service\":{\"name\":\"so_test4\",\"description\":\"so_test2\",\"serviceDefId\":\"60c3e96e-0970-4871-b6e0-3b6de7561519\",\"templateId\":\"592f9437-a9c0-4303-b9f6-c445bb7e9814\",\"parameters\":{\"globalSubscriberId\":\"123457\",\"subscriberName\":\"Customer1\",\"serviceType\":\"voLTE\",\"templateName\":\"voLTE Service:1.0\",\"resources\":[{\"resourceName\":\"vIMS\",\"resourceDefId\":\"60c3e96e-0970-4871-b6e0-3b6de7561516\",\"resourceId\":\"60c3e96e-0970-4871-b6e0-3b6de7561512\",\"nsParameters\":{\"locationConstraints\":[{\"vnfProfileId\":\"zte-vBAS-1.0\",\"locationConstraints\":{\"vimId\":\"4050083f-465f-4838-af1e-47a545222ad0\"}},{\"vnfProfileId\":\"zte-vMME-1.0\",\"locationConstraints\":{\"vimId\":\"4050083f-465f-4838-af1e-47a545222ad0\"}}],\"additionalParamForNs\":{}}},{\"resourceName\":\"vEPC\",\"resourceDefId\":\"61c3e96e-0970-4871-b6e0-3b6de7561516\",\"resourceId\":\"62c3e96e-0970-4871-b6e0-3b6de7561512\",\"nsParameters\":{\"locationConstraints\":[{\"vnfProfileId\":\"zte-CSCF-1.0\",\"locationConstraints\":{\"vimId\":\"4050083f-465f-4838-af1e-47a545222ad1\"}}],\"additionalParamForNs\":{}}},{\"resourceName\":\"underlayvpn\",\"resourceDefId\":\"60c3e96e-0970-4871-b6e0-3b6de7561513\",\"resourceId\":\"60c3e96e-0970-4871-b6e0-3b6de7561514\",\"nsParameters\":{\"locationConstraints\":[],\"additionalParamForNs\":{\"externalDataNetworkName\":\"Flow_out_net\",\"m6000_mng_ip\":\"181.18.20.2\",\"externalCompanyFtpDataNetworkName\":\"Flow_out_net\",\"externalPluginManageNetworkName\":\"plugin_net_2014\",\"externalManageNetworkName\":\"mng_net_2017\",\"sfc_data_network\":\"sfc_data_net_2016\",\"NatIpRange\":\"210.1.1.10-210.1.1.20\",\"location\":\"4050083f-465f-4838-af1e-47a545222ad0\",\"sdncontroller\":\"9b9f02c0-298b-458a-bc9c-be3692e4f35e\"}}},{\"resourceName\":\"overlayvpn\",\"resourceDefId\":\"60c3e96e-0970-4871-b6e0-3b6de7561517\",\"resourceId\":\"60c3e96e-0970-4871-b6e0-3b6de7561518\",\"nsParameters\":{\"locationConstraints\":[],\"additionalParamForNs\":{\"externalDataNetworkName\":\"Flow_out_net\",\"m6000_mng_ip\":\"181.18.20.2\",\"externalCompanyFtpDataNetworkName\":\"Flow_out_net\",\"externalPluginManageNetworkName\":\"plugin_net_2014\",\"externalManageNetworkName\":\"mng_net_2017\",\"sfc_data_network\":\"sfc_data_net_2016\",\"NatIpRange\":\"210.1.1.10-210.1.1.20\",\"location\":\"4050083f-465f-4838-af1e-47a545222ad0\",\"sdncontroller\":\"9b9f02c0-298b-458a-bc9c-be3692e4f35e\"}}}]}}}";\r
436                 Response resp = instance.createE2EServiceInstance(request, "v3");\r
437                 String respStr = resp.getEntity().toString();\r
438                 assertTrue(respStr.contains("SVC2000"));\r
439         }\r
440 \r
441         @Test\r
442         public void createE2EServiceInstanceTestNullReceipe() {\r
443                 new MockUp<RequestsDatabase>() {\r
444                         @Mock\r
445                         public OperationStatus getOperationStatusByServiceName(\r
446                                         String serviceName) {\r
447                                 OperationStatus operationStatus = new OperationStatus();\r
448                                 return operationStatus;\r
449                         }\r
450                 };\r
451                 new MockUp<E2EServiceInstances>() {\r
452                         @Mock\r
453                         private void createOperationStatusRecordForError(Action action,\r
454                                         String requestId) throws MsoDatabaseException {\r
455 \r
456                         }\r
457                 };\r
458 \r
459                 E2EServiceInstances instance = new E2EServiceInstances();\r
460                 String request = "{\"service\":{\"name\":\"so_test4\",\"description\":\"so_test2\",\"serviceDefId\":\"60c3e96e-0970-4871-b6e0-3b6de7561519\",\"templateId\":\"592f9437-a9c0-4303-b9f6-c445bb7e9814\",\"parameters\":{\"globalSubscriberId\":\"123457\",\"subscriberName\":\"Customer1\",\"serviceType\":\"voLTE\",\"templateName\":\"voLTE Service:1.0\",\"resources\":[{\"resourceName\":\"vIMS\",\"resourceDefId\":\"60c3e96e-0970-4871-b6e0-3b6de7561516\",\"resourceId\":\"60c3e96e-0970-4871-b6e0-3b6de7561512\",\"nsParameters\":{\"locationConstraints\":[{\"vnfProfileId\":\"zte-vBAS-1.0\",\"locationConstraints\":{\"vimId\":\"4050083f-465f-4838-af1e-47a545222ad0\"}},{\"vnfProfileId\":\"zte-vMME-1.0\",\"locationConstraints\":{\"vimId\":\"4050083f-465f-4838-af1e-47a545222ad0\"}}],\"additionalParamForNs\":{}}},{\"resourceName\":\"vEPC\",\"resourceDefId\":\"61c3e96e-0970-4871-b6e0-3b6de7561516\",\"resourceId\":\"62c3e96e-0970-4871-b6e0-3b6de7561512\",\"nsParameters\":{\"locationConstraints\":[{\"vnfProfileId\":\"zte-CSCF-1.0\",\"locationConstraints\":{\"vimId\":\"4050083f-465f-4838-af1e-47a545222ad1\"}}],\"additionalParamForNs\":{}}},{\"resourceName\":\"underlayvpn\",\"resourceDefId\":\"60c3e96e-0970-4871-b6e0-3b6de7561513\",\"resourceId\":\"60c3e96e-0970-4871-b6e0-3b6de7561514\",\"nsParameters\":{\"locationConstraints\":[],\"additionalParamForNs\":{\"externalDataNetworkName\":\"Flow_out_net\",\"m6000_mng_ip\":\"181.18.20.2\",\"externalCompanyFtpDataNetworkName\":\"Flow_out_net\",\"externalPluginManageNetworkName\":\"plugin_net_2014\",\"externalManageNetworkName\":\"mng_net_2017\",\"sfc_data_network\":\"sfc_data_net_2016\",\"NatIpRange\":\"210.1.1.10-210.1.1.20\",\"location\":\"4050083f-465f-4838-af1e-47a545222ad0\",\"sdncontroller\":\"9b9f02c0-298b-458a-bc9c-be3692e4f35e\"}}},{\"resourceName\":\"overlayvpn\",\"resourceDefId\":\"60c3e96e-0970-4871-b6e0-3b6de7561517\",\"resourceId\":\"60c3e96e-0970-4871-b6e0-3b6de7561518\",\"nsParameters\":{\"locationConstraints\":[],\"additionalParamForNs\":{\"externalDataNetworkName\":\"Flow_out_net\",\"m6000_mng_ip\":\"181.18.20.2\",\"externalCompanyFtpDataNetworkName\":\"Flow_out_net\",\"externalPluginManageNetworkName\":\"plugin_net_2014\",\"externalManageNetworkName\":\"mng_net_2017\",\"sfc_data_network\":\"sfc_data_net_2016\",\"NatIpRange\":\"210.1.1.10-210.1.1.20\",\"location\":\"4050083f-465f-4838-af1e-47a545222ad0\",\"sdncontroller\":\"9b9f02c0-298b-458a-bc9c-be3692e4f35e\"}}}]}}}";\r
461                 Response resp = instance.createE2EServiceInstance(request, "v3");\r
462                 String respStr = resp.getEntity().toString();\r
463                 assertTrue(respStr.contains("SVC2000"));\r
464         }\r
465 \r
466         @Test\r
467         public void createE2EServiceInstanceTestNullDBResponse() {\r
468 \r
469                 new MockUp<RequestsDatabase>() {\r
470                         @Mock\r
471                         public OperationStatus getOperationStatusByServiceName(\r
472                                         String serviceName) {\r
473                                 OperationStatus operationStatus = new OperationStatus();\r
474                                 return operationStatus;\r
475                         }\r
476                 };\r
477                 new MockUp<E2EServiceInstances>() {\r
478                         @Mock\r
479                         private void createOperationStatusRecordForError(Action action,\r
480                                         String requestId) throws MsoDatabaseException {\r
481 \r
482                         }\r
483                 };\r
484 \r
485                 E2EServiceInstances instance = new E2EServiceInstances();\r
486                 String request = "{\"service\":{\"name\":\"so_test4\",\"description\":\"so_test2\",\"serviceDefId\":\"60c3e96e-0970-4871-b6e0-3b6de7561519\",\"templateId\":\"592f9437-a9c0-4303-b9f6-c445bb7e9814\",\"parameters\":{\"globalSubscriberId\":\"123457\",\"subscriberName\":\"Customer1\",\"serviceType\":\"voLTE\",\"templateName\":\"voLTE Service:1.0\",\"resources\":[{\"resourceName\":\"vIMS\",\"resourceDefId\":\"60c3e96e-0970-4871-b6e0-3b6de7561516\",\"resourceId\":\"60c3e96e-0970-4871-b6e0-3b6de7561512\",\"nsParameters\":{\"locationConstraints\":[{\"vnfProfileId\":\"zte-vBAS-1.0\",\"locationConstraints\":{\"vimId\":\"4050083f-465f-4838-af1e-47a545222ad0\"}},{\"vnfProfileId\":\"zte-vMME-1.0\",\"locationConstraints\":{\"vimId\":\"4050083f-465f-4838-af1e-47a545222ad0\"}}],\"additionalParamForNs\":{}}},{\"resourceName\":\"vEPC\",\"resourceDefId\":\"61c3e96e-0970-4871-b6e0-3b6de7561516\",\"resourceId\":\"62c3e96e-0970-4871-b6e0-3b6de7561512\",\"nsParameters\":{\"locationConstraints\":[{\"vnfProfileId\":\"zte-CSCF-1.0\",\"locationConstraints\":{\"vimId\":\"4050083f-465f-4838-af1e-47a545222ad1\"}}],\"additionalParamForNs\":{}}},{\"resourceName\":\"underlayvpn\",\"resourceDefId\":\"60c3e96e-0970-4871-b6e0-3b6de7561513\",\"resourceId\":\"60c3e96e-0970-4871-b6e0-3b6de7561514\",\"nsParameters\":{\"locationConstraints\":[],\"additionalParamForNs\":{\"externalDataNetworkName\":\"Flow_out_net\",\"m6000_mng_ip\":\"181.18.20.2\",\"externalCompanyFtpDataNetworkName\":\"Flow_out_net\",\"externalPluginManageNetworkName\":\"plugin_net_2014\",\"externalManageNetworkName\":\"mng_net_2017\",\"sfc_data_network\":\"sfc_data_net_2016\",\"NatIpRange\":\"210.1.1.10-210.1.1.20\",\"location\":\"4050083f-465f-4838-af1e-47a545222ad0\",\"sdncontroller\":\"9b9f02c0-298b-458a-bc9c-be3692e4f35e\"}}},{\"resourceName\":\"overlayvpn\",\"resourceDefId\":\"60c3e96e-0970-4871-b6e0-3b6de7561517\",\"resourceId\":\"60c3e96e-0970-4871-b6e0-3b6de7561518\",\"nsParameters\":{\"locationConstraints\":[],\"additionalParamForNs\":{\"externalDataNetworkName\":\"Flow_out_net\",\"m6000_mng_ip\":\"181.18.20.2\",\"externalCompanyFtpDataNetworkName\":\"Flow_out_net\",\"externalPluginManageNetworkName\":\"plugin_net_2014\",\"externalManageNetworkName\":\"mng_net_2017\",\"sfc_data_network\":\"sfc_data_net_2016\",\"NatIpRange\":\"210.1.1.10-210.1.1.20\",\"location\":\"4050083f-465f-4838-af1e-47a545222ad0\",\"sdncontroller\":\"9b9f02c0-298b-458a-bc9c-be3692e4f35e\"}}}]}}}";\r
487                 Response resp = instance.createE2EServiceInstance(request, "v3");\r
488                 String respStr = resp.getEntity().toString();\r
489                 assertTrue(respStr.contains("SVC2000"));\r
490         }\r
491 \r
492         @Test\r
493         public void createE2EServiceInstanceTestInvalidRequest() {\r
494                 new MockUp<RequestsDatabase>() {\r
495                         @Mock\r
496                         public OperationStatus getOperationStatusByServiceName(\r
497                                         String serviceName) {\r
498                                 OperationStatus operationStatus = new OperationStatus();\r
499                                 return operationStatus;\r
500                         }\r
501                 };\r
502 \r
503                 new MockUp<E2EServiceInstances>() {\r
504                         @Mock\r
505                         private void createOperationStatusRecordForError(Action action,\r
506                                         String requestId) throws MsoDatabaseException {\r
507 \r
508                         }\r
509                 };\r
510                 E2EServiceInstances instance = new E2EServiceInstances();\r
511                 String request = "{\"service\":{\"name\":\"so_test4\",\"description\":\"so_test2\",\"serviceDefId\":\"60c3e96e-0970-4871-b6e0-3b6de7561519\",\"templateId\":\"592f9437-a9c0-4303-b9f6-c445bb7e9814\",\"parameters\":{\"globalSubscriberId\":\"123457\",\"subscriberName\":\"Customer1\",\"serviceType\":\"voLTE\",\"templateName\":\"voLTE Service:1.0\",\"resources\":[{\"resourceName\":\"vIMS\",\"resourceDefId\":\"60c3e96e-0970-4871-b6e0-3b6de7561516\",\"resourceId\":\"60c3e96e-0970-4871-b6e0-3b6de7561512\",\"nsParameters\":{\"locationConstraints\":[{\"vnfProfileId\":\"zte-vBAS-1.0\",\"locationConstraints\":{\"vimId\":\"4050083f-465f-4838-af1e-47a545222ad0\"}},{\"vnfProfileId\":\"zte-vMME-1.0\",\"locationConstraints\":{\"vimId\":\"4050083f-465f-4838-af1e-47a545222ad0\"}}],\"additionalParamForNs\":{}}},{\"resourceName\":\"vEPC\",\"resourceDefId\":\"61c3e96e-0970-4871-b6e0-3b6de7561516\",\"resourceId\":\"62c3e96e-0970-4871-b6e0-3b6de7561512\",\"nsParameters\":{\"locationConstraints\":[{\"vnfProfileId\":\"zte-CSCF-1.0\",\"locationConstraints\":{\"vimId\":\"4050083f-465f-4838-af1e-47a545222ad1\"}}],\"additionalParamForNs\":{}}},{\"resourceName\":\"underlayvpn\",\"resourceDefId\":\"60c3e96e-0970-4871-b6e0-3b6de7561513\",\"resourceId\":\"60c3e96e-0970-4871-b6e0-3b6de7561514\",\"nsParameters\":{\"locationConstraints\":[],\"additionalParamForNs\":{\"externalDataNetworkName\":\"Flow_out_net\",\"m6000_mng_ip\":\"181.18.20.2\",\"externalCompanyFtpDataNetworkName\":\"Flow_out_net\",\"externalPluginManageNetworkName\":\"plugin_net_2014\",\"externalManageNetworkName\":\"mng_net_2017\",\"sfc_data_network\":\"sfc_data_net_2016\",\"NatIpRange\":\"210.1.1.10-210.1.1.20\",\"location\":\"4050083f-465f-4838-af1e-47a545222ad0\",\"sdncontroller\":\"9b9f02c0-298b-458a-bc9c-be3692e4f35e\"}}},{\"resourceName\":\"overlayvpn\",\"resourceDefId\":\"60c3e96e-0970-4871-b6e0-3b6de7561517\",\"resourceId\":\"60c3e96e-0970-4871-b6e0-3b6de7561518\",\"nsParameters\":{\"locationConstraints\":[],\"additionalParamForNs\":{\"externalDataNetworkName\":\"Flow_out_net\",\"m6000_mng_ip\":\"181.18.20.2\",\"externalCompanyFtpDataNetworkName\":\"Flow_out_net\",\"externalPluginManageNetworkName\":\"plugin_net_2014\",\"externalManageNetworkName\":\"mng_net_2017\",\"sfc_data_network\":\"sfc_data_net_2016\",\"NatIpRange\":\"210.1.1.10-210.1.1.20\",\"location\":\"4050083f-465f-4838-af1e-47a545222ad0\",\"sdncontroller\":\"9b9f02c0-298b-458a-bc9c-be3692e4f35e\"}}}]}}}";\r
512                 Response resp = instance.createE2EServiceInstance(request, "v3");\r
513                 String respStr = resp.getEntity().toString();\r
514                 assertTrue(respStr.contains("SVC2000"));\r
515         }\r
516 \r
517         @Test\r
518         public void createE2EServiceInstanceTestEmptyDBQuery() {\r
519                 new MockUp<E2EServiceInstances>() {\r
520                         @Mock\r
521                         private void createOperationStatusRecordForError(Action action,\r
522                                         String requestId) throws MsoDatabaseException {\r
523 \r
524                         }\r
525                 };\r
526 \r
527                 E2EServiceInstances instance = new E2EServiceInstances();\r
528                 String request = "{\"service\":{\"name\":\"so_test4\",\"description\":\"so_test2\",\"serviceDefId\":\"60c3e96e-0970-4871-b6e0-3b6de7561519\",\"templateId\":\"592f9437-a9c0-4303-b9f6-c445bb7e9814\",\"parameters\":{\"globalSubscriberId\":\"123457\",\"subscriberName\":\"Customer1\",\"serviceType\":\"voLTE\",\"templateName\":\"voLTE Service:1.0\",\"resources\":[{\"resourceName\":\"vIMS\",\"resourceDefId\":\"60c3e96e-0970-4871-b6e0-3b6de7561516\",\"resourceId\":\"60c3e96e-0970-4871-b6e0-3b6de7561512\",\"nsParameters\":{\"locationConstraints\":[{\"vnfProfileId\":\"zte-vBAS-1.0\",\"locationConstraints\":{\"vimId\":\"4050083f-465f-4838-af1e-47a545222ad0\"}},{\"vnfProfileId\":\"zte-vMME-1.0\",\"locationConstraints\":{\"vimId\":\"4050083f-465f-4838-af1e-47a545222ad0\"}}],\"additionalParamForNs\":{}}},{\"resourceName\":\"vEPC\",\"resourceDefId\":\"61c3e96e-0970-4871-b6e0-3b6de7561516\",\"resourceId\":\"62c3e96e-0970-4871-b6e0-3b6de7561512\",\"nsParameters\":{\"locationConstraints\":[{\"vnfProfileId\":\"zte-CSCF-1.0\",\"locationConstraints\":{\"vimId\":\"4050083f-465f-4838-af1e-47a545222ad1\"}}],\"additionalParamForNs\":{}}},{\"resourceName\":\"underlayvpn\",\"resourceDefId\":\"60c3e96e-0970-4871-b6e0-3b6de7561513\",\"resourceId\":\"60c3e96e-0970-4871-b6e0-3b6de7561514\",\"nsParameters\":{\"locationConstraints\":[],\"additionalParamForNs\":{\"externalDataNetworkName\":\"Flow_out_net\",\"m6000_mng_ip\":\"181.18.20.2\",\"externalCompanyFtpDataNetworkName\":\"Flow_out_net\",\"externalPluginManageNetworkName\":\"plugin_net_2014\",\"externalManageNetworkName\":\"mng_net_2017\",\"sfc_data_network\":\"sfc_data_net_2016\",\"NatIpRange\":\"210.1.1.10-210.1.1.20\",\"location\":\"4050083f-465f-4838-af1e-47a545222ad0\",\"sdncontroller\":\"9b9f02c0-298b-458a-bc9c-be3692e4f35e\"}}},{\"resourceName\":\"overlayvpn\",\"resourceDefId\":\"60c3e96e-0970-4871-b6e0-3b6de7561517\",\"resourceId\":\"60c3e96e-0970-4871-b6e0-3b6de7561518\",\"nsParameters\":{\"locationConstraints\":[],\"additionalParamForNs\":{\"externalDataNetworkName\":\"Flow_out_net\",\"m6000_mng_ip\":\"181.18.20.2\",\"externalCompanyFtpDataNetworkName\":\"Flow_out_net\",\"externalPluginManageNetworkName\":\"plugin_net_2014\",\"externalManageNetworkName\":\"mng_net_2017\",\"sfc_data_network\":\"sfc_data_net_2016\",\"NatIpRange\":\"210.1.1.10-210.1.1.20\",\"location\":\"4050083f-465f-4838-af1e-47a545222ad0\",\"sdncontroller\":\"9b9f02c0-298b-458a-bc9c-be3692e4f35e\"}}}]}}}";\r
529                 Response resp = instance.createE2EServiceInstance(request, "v3");\r
530                 String respStr = resp.getEntity().toString();\r
531                 assertTrue(respStr.contains("SVC2000"));\r
532                 // assertTrue(true);\r
533         }\r
534 \r
535         @Test\r
536         public void createE2EServiceInstanceTestDBQueryFail() {\r
537                 new MockUp<RequestsDatabase>() {\r
538                         @Mock\r
539                         public OperationStatus getOperationStatusByServiceName(\r
540                                         String serviceName) {\r
541                                 OperationStatus operationStatus = new OperationStatus();\r
542                                 return operationStatus;\r
543                         }\r
544                 };\r
545 \r
546                 new MockUp<E2EServiceInstances>() {\r
547                         @Mock\r
548                         private void createOperationStatusRecordForError(Action action,\r
549                                         String requestId) throws MsoDatabaseException {\r
550 \r
551                         }\r
552                 };\r
553                 E2EServiceInstances instance = new E2EServiceInstances();\r
554                 String request = "{\"service\":{\"name\":\"so_test4\",\"description\":\"so_test2\",\"serviceDefId\":\"60c3e96e-0970-4871-b6e0-3b6de7561519\",\"templateId\":\"592f9437-a9c0-4303-b9f6-c445bb7e9814\",\"parameters\":{\"globalSubscriberId\":\"123457\",\"subscriberName\":\"Customer1\",\"serviceType\":\"voLTE\",\"templateName\":\"voLTE Service:1.0\",\"resources\":[{\"resourceName\":\"vIMS\",\"resourceDefId\":\"60c3e96e-0970-4871-b6e0-3b6de7561516\",\"resourceId\":\"60c3e96e-0970-4871-b6e0-3b6de7561512\",\"nsParameters\":{\"locationConstraints\":[{\"vnfProfileId\":\"zte-vBAS-1.0\",\"locationConstraints\":{\"vimId\":\"4050083f-465f-4838-af1e-47a545222ad0\"}},{\"vnfProfileId\":\"zte-vMME-1.0\",\"locationConstraints\":{\"vimId\":\"4050083f-465f-4838-af1e-47a545222ad0\"}}],\"additionalParamForNs\":{}}},{\"resourceName\":\"vEPC\",\"resourceDefId\":\"61c3e96e-0970-4871-b6e0-3b6de7561516\",\"resourceId\":\"62c3e96e-0970-4871-b6e0-3b6de7561512\",\"nsParameters\":{\"locationConstraints\":[{\"vnfProfileId\":\"zte-CSCF-1.0\",\"locationConstraints\":{\"vimId\":\"4050083f-465f-4838-af1e-47a545222ad1\"}}],\"additionalParamForNs\":{}}},{\"resourceName\":\"underlayvpn\",\"resourceDefId\":\"60c3e96e-0970-4871-b6e0-3b6de7561513\",\"resourceId\":\"60c3e96e-0970-4871-b6e0-3b6de7561514\",\"nsParameters\":{\"locationConstraints\":[],\"additionalParamForNs\":{\"externalDataNetworkName\":\"Flow_out_net\",\"m6000_mng_ip\":\"181.18.20.2\",\"externalCompanyFtpDataNetworkName\":\"Flow_out_net\",\"externalPluginManageNetworkName\":\"plugin_net_2014\",\"externalManageNetworkName\":\"mng_net_2017\",\"sfc_data_network\":\"sfc_data_net_2016\",\"NatIpRange\":\"210.1.1.10-210.1.1.20\",\"location\":\"4050083f-465f-4838-af1e-47a545222ad0\",\"sdncontroller\":\"9b9f02c0-298b-458a-bc9c-be3692e4f35e\"}}},{\"resourceName\":\"overlayvpn\",\"resourceDefId\":\"60c3e96e-0970-4871-b6e0-3b6de7561517\",\"resourceId\":\"60c3e96e-0970-4871-b6e0-3b6de7561518\",\"nsParameters\":{\"locationConstraints\":[],\"additionalParamForNs\":{\"externalDataNetworkName\":\"Flow_out_net\",\"m6000_mng_ip\":\"181.18.20.2\",\"externalCompanyFtpDataNetworkName\":\"Flow_out_net\",\"externalPluginManageNetworkName\":\"plugin_net_2014\",\"externalManageNetworkName\":\"mng_net_2017\",\"sfc_data_network\":\"sfc_data_net_2016\",\"NatIpRange\":\"210.1.1.10-210.1.1.20\",\"location\":\"4050083f-465f-4838-af1e-47a545222ad0\",\"sdncontroller\":\"9b9f02c0-298b-458a-bc9c-be3692e4f35e\"}}}]}}}";\r
555                 Response resp = instance.createE2EServiceInstance(request, "v3");\r
556                 String respStr = resp.getEntity().toString();\r
557                 assertTrue(respStr.contains("SVC2000"));\r
558         }\r
559 \r
560         @Test\r
561         public void createE2EServiceInstanceTestForEmptyRequest() {\r
562 \r
563                 new MockUp<E2EServiceInstances>() {\r
564                         @Mock\r
565                         private void createOperationStatusRecordForError(Action action,\r
566                                         String requestId) throws MsoDatabaseException {\r
567 \r
568                         }\r
569                 };\r
570                 E2EServiceInstances instance = new E2EServiceInstances();\r
571                 String request = "";\r
572                 Response resp = instance.createE2EServiceInstance(request, "v3");\r
573                 String respStr = resp.getEntity().toString();\r
574                 assertTrue(respStr\r
575             .contains("Mapping of request to JSON object failed.  No content to map to Object due to end of input"));\r
576         }\r
577 \r
578         @Ignore // 1802 merge\r
579         @Test\r
580         public void deleteE2EServiceInstanceTestNormal() {\r
581                 E2EServiceInstances instance = new E2EServiceInstances();\r
582                 String request = "{\"globalSubscriberId\":\"299392392\",\"serviceType\":\"VoLTE\"}";\r
583                 Response resp = instance.deleteE2EServiceInstance(request, "v3",\r
584                                 "12345678");\r
585                 String respStr = resp.getEntity().toString();\r
586                 assertTrue(respStr.contains("SVC1000"));\r
587         }\r
588 \r
589         @Test\r
590         public void getE2EServiceInstanceTest() {\r
591 \r
592                 new MockUp<RequestsDatabase>() {\r
593                         @Mock\r
594                         public OperationStatus getOperationStatus(String serviceId,\r
595                                         String operationId) {\r
596                                 OperationStatus os = new OperationStatus();\r
597                                 os.setOperation("");\r
598                                 os.setOperationContent("");\r
599                                 os.setOperationId("123456");\r
600                                 os.setProgress("");\r
601                                 os.setServiceId("12345");\r
602                                 os.setServiceName("VoLTE");\r
603                                 os.setReason("");\r
604                                 os.setResult("");\r
605                                 os.setUserId("");\r
606                                 return os;\r
607                         }\r
608                 };\r
609 \r
610                 E2EServiceInstances instance = new E2EServiceInstances();\r
611                 Response resp = instance\r
612                                 .getE2EServiceInstances("12345", "v3", "123456");\r
613 \r
614         }\r
615         \r
616         @Test\r
617         public void updateE2EServiceInstanceTestNormal() {\r
618                 new MockUp<RequestsDatabase>() {\r
619                         @Mock\r
620                         public OperationStatus getOperationStatusByServiceId(\r
621                                         String serviceID) {\r
622                                 OperationStatus operationStatus = new OperationStatus();\r
623                                 operationStatus.setProgress("100");\r
624                                 return operationStatus;\r
625                         }\r
626                 };\r
627                 new MockUp<E2EServiceInstances>() {\r
628                         @Mock\r
629                         private void createOperationStatusRecordForError(Action action,\r
630                                         String requestId) throws MsoDatabaseException {\r
631 \r
632                         }\r
633                 };\r
634                 new MockUp<CatalogDatabase>() {\r
635                         @Mock\r
636                         public Service getServiceByModelName(String modelName) {\r
637                                 Service svc = new Service();\r
638                                 return svc;\r
639                         }\r
640                 };\r
641 \r
642                 new MockUp<CatalogDatabase>() {\r
643                         @Mock\r
644                         public ServiceRecipe getServiceRecipeByModelUUID(String modelUUID,\r
645                                         String action) {\r
646                                 ServiceRecipe rec = new ServiceRecipe();\r
647                                 return rec;\r
648                         }\r
649                 };\r
650 \r
651                 new MockUp<RequestClientFactory>() {\r
652                         @Mock\r
653                         public RequestClient getRequestClient(String orchestrationURI,\r
654                                         MsoJavaProperties props) throws IllegalStateException {\r
655                                 RequestClient client = new CamundaClient();\r
656                                 client.setUrl("/test/url");\r
657                                 return client;\r
658                         }\r
659                 };\r
660 \r
661                 new MockUp<CamundaClient>() {\r
662                         @Mock\r
663                         public HttpResponse post(String requestId, boolean isBaseVfModule,\r
664                                         int recipeTimeout, String requestAction,\r
665                                         String serviceInstanceId, String vnfId, String vfModuleId,\r
666                                         String volumeGroupId, String networkId, String configurationId, String serviceType,\r
667                                         String vnfType, String vfModuleType, String networkType,\r
668                                         String requestDetails, String recipeParamXsd) {\r
669                                 ProtocolVersion pv = new ProtocolVersion("HTTP", 1, 1);\r
670                                 HttpResponse resp = new BasicHttpResponse(pv, 202,\r
671                                                 "test response");\r
672                                 BasicHttpEntity entity = new BasicHttpEntity();\r
673                                 String body = "{\"response\":\"success\",\"message\":\"success\"}";\r
674                                 InputStream instream = new ByteArrayInputStream(body.getBytes());\r
675                                 entity.setContent(instream);\r
676                                 resp.setEntity(entity);\r
677                                 return resp;\r
678                         }\r
679                 };\r
680 \r
681                 E2EServiceInstances instance = new E2EServiceInstances();\r
682                 String request = "{\"service\":{\"name\":\"so_test4\",\"description\":\"so_test2\",\"serviceDefId\":\"60c3e96e-0970-4871-b6e0-3b6de7561519\",\"templateId\":\"592f9437-a9c0-4303-b9f6-c445bb7e9814\",\"parameters\":{\"globalSubscriberId\":\"123457\",\"subscriberName\":\"Customer1\",\"serviceType\":\"voLTE\",\"templateName\":\"voLTE Service:1.0\",\"resources\":[{\"resourceName\":\"vIMS\",\"resourceDefId\":\"60c3e96e-0970-4871-b6e0-3b6de7561516\",\"resourceId\":\"60c3e96e-0970-4871-b6e0-3b6de7561512\",\"nsParameters\":{\"locationConstraints\":[{\"vnfProfileId\":\"zte-vBAS-1.0\",\"locationConstraints\":{\"vimId\":\"4050083f-465f-4838-af1e-47a545222ad0\"}},{\"vnfProfileId\":\"zte-vMME-1.0\",\"locationConstraints\":{\"vimId\":\"4050083f-465f-4838-af1e-47a545222ad0\"}}],\"additionalParamForNs\":{}}},{\"resourceName\":\"vEPC\",\"resourceDefId\":\"61c3e96e-0970-4871-b6e0-3b6de7561516\",\"resourceId\":\"62c3e96e-0970-4871-b6e0-3b6de7561512\",\"nsParameters\":{\"locationConstraints\":[{\"vnfProfileId\":\"zte-CSCF-1.0\",\"locationConstraints\":{\"vimId\":\"4050083f-465f-4838-af1e-47a545222ad1\"}}],\"additionalParamForNs\":{}}},{\"resourceName\":\"underlayvpn\",\"resourceDefId\":\"60c3e96e-0970-4871-b6e0-3b6de7561513\",\"resourceId\":\"60c3e96e-0970-4871-b6e0-3b6de7561514\",\"nsParameters\":{\"locationConstraints\":[],\"additionalParamForNs\":{\"externalDataNetworkName\":\"Flow_out_net\",\"m6000_mng_ip\":\"181.18.20.2\",\"externalCompanyFtpDataNetworkName\":\"Flow_out_net\",\"externalPluginManageNetworkName\":\"plugin_net_2014\",\"externalManageNetworkName\":\"mng_net_2017\",\"sfc_data_network\":\"sfc_data_net_2016\",\"NatIpRange\":\"210.1.1.10-210.1.1.20\",\"location\":\"4050083f-465f-4838-af1e-47a545222ad0\",\"sdncontroller\":\"9b9f02c0-298b-458a-bc9c-be3692e4f35e\"}}},{\"resourceName\":\"overlayvpn\",\"resourceDefId\":\"60c3e96e-0970-4871-b6e0-3b6de7561517\",\"resourceId\":\"60c3e96e-0970-4871-b6e0-3b6de7561518\",\"nsParameters\":{\"locationConstraints\":[],\"additionalParamForNs\":{\"externalDataNetworkName\":\"Flow_out_net\",\"m6000_mng_ip\":\"181.18.20.2\",\"externalCompanyFtpDataNetworkName\":\"Flow_out_net\",\"externalPluginManageNetworkName\":\"plugin_net_2014\",\"externalManageNetworkName\":\"mng_net_2017\",\"sfc_data_network\":\"sfc_data_net_2016\",\"NatIpRange\":\"210.1.1.10-210.1.1.20\",\"location\":\"4050083f-465f-4838-af1e-47a545222ad0\",\"sdncontroller\":\"9b9f02c0-298b-458a-bc9c-be3692e4f35e\"}}}]}}}";\r
683                 Response resp = instance.updateE2EServiceInstance(request, "v3", "12345");\r
684                 String respStr = resp.getEntity().toString();\r
685                 assertTrue(respStr.contains("success"));\r
686         }\r
687         \r
688         @Test\r
689         public void updateE2EServiceInstanceTestChkStatusFalse() {\r
690                 new MockUp<RequestsDatabase>() {\r
691                         @Mock\r
692                         public OperationStatus getOperationStatusByServiceId(\r
693                                         String serviceID) {\r
694                                 OperationStatus operationStatus = new OperationStatus();\r
695                                 return operationStatus;\r
696                         }\r
697                 };\r
698                 new MockUp<E2EServiceInstances>() {\r
699                         @Mock\r
700                         private void createOperationStatusRecordForError(Action action,\r
701                                         String requestId) throws MsoDatabaseException {\r
702 \r
703                         }\r
704                 };\r
705                 new MockUp<CatalogDatabase>() {\r
706                         @Mock\r
707                         public Service getServiceByModelName(String modelName) {\r
708                                 Service svc = new Service();\r
709                                 return svc;\r
710                         }\r
711                 };\r
712 \r
713                 new MockUp<CatalogDatabase>() {\r
714                         @Mock\r
715                         public ServiceRecipe getServiceRecipeByModelUUID(String modelUUID,\r
716                                         String action) {\r
717                                 ServiceRecipe rec = new ServiceRecipe();\r
718                                 return rec;\r
719                         }\r
720                 };\r
721 \r
722                 new MockUp<RequestClientFactory>() {\r
723                         @Mock\r
724                         public RequestClient getRequestClient(String orchestrationURI,\r
725                                         MsoJavaProperties props) throws IllegalStateException {\r
726                                 RequestClient client = new CamundaClient();\r
727                                 client.setUrl("/test/url");\r
728                                 return client;\r
729                         }\r
730                 };\r
731 \r
732                 new MockUp<CamundaClient>() {\r
733                         @Mock\r
734                         public HttpResponse post(String requestId, boolean isBaseVfModule,\r
735                                         int recipeTimeout, String requestAction,\r
736                                         String serviceInstanceId, String vnfId, String vfModuleId,\r
737                                         String volumeGroupId, String networkId, String configurationId, String serviceType,\r
738                                         String vnfType, String vfModuleType, String networkType,\r
739                                         String requestDetails, String recipeParamXsd) {\r
740                                 ProtocolVersion pv = new ProtocolVersion("HTTP", 1, 1);\r
741                                 HttpResponse resp = new BasicHttpResponse(pv, 202,\r
742                                                 "test response");\r
743                                 BasicHttpEntity entity = new BasicHttpEntity();\r
744                                 String body = "{\"response\":\"success\",\"message\":\"success\"}";\r
745                                 InputStream instream = new ByteArrayInputStream(body.getBytes());\r
746                                 entity.setContent(instream);\r
747                                 resp.setEntity(entity);\r
748                                 return resp;\r
749                         }\r
750                 };\r
751 \r
752                 E2EServiceInstances instance = new E2EServiceInstances();\r
753                 String request = "{\"service\":{\"name\":\"so_test4\",\"description\":\"so_test2\",\"serviceDefId\":\"60c3e96e-0970-4871-b6e0-3b6de7561519\",\"templateId\":\"592f9437-a9c0-4303-b9f6-c445bb7e9814\",\"parameters\":{\"globalSubscriberId\":\"123457\",\"subscriberName\":\"Customer1\",\"serviceType\":\"voLTE\",\"templateName\":\"voLTE Service:1.0\",\"resources\":[{\"resourceName\":\"vIMS\",\"resourceDefId\":\"60c3e96e-0970-4871-b6e0-3b6de7561516\",\"resourceId\":\"60c3e96e-0970-4871-b6e0-3b6de7561512\",\"nsParameters\":{\"locationConstraints\":[{\"vnfProfileId\":\"zte-vBAS-1.0\",\"locationConstraints\":{\"vimId\":\"4050083f-465f-4838-af1e-47a545222ad0\"}},{\"vnfProfileId\":\"zte-vMME-1.0\",\"locationConstraints\":{\"vimId\":\"4050083f-465f-4838-af1e-47a545222ad0\"}}],\"additionalParamForNs\":{}}},{\"resourceName\":\"vEPC\",\"resourceDefId\":\"61c3e96e-0970-4871-b6e0-3b6de7561516\",\"resourceId\":\"62c3e96e-0970-4871-b6e0-3b6de7561512\",\"nsParameters\":{\"locationConstraints\":[{\"vnfProfileId\":\"zte-CSCF-1.0\",\"locationConstraints\":{\"vimId\":\"4050083f-465f-4838-af1e-47a545222ad1\"}}],\"additionalParamForNs\":{}}},{\"resourceName\":\"underlayvpn\",\"resourceDefId\":\"60c3e96e-0970-4871-b6e0-3b6de7561513\",\"resourceId\":\"60c3e96e-0970-4871-b6e0-3b6de7561514\",\"nsParameters\":{\"locationConstraints\":[],\"additionalParamForNs\":{\"externalDataNetworkName\":\"Flow_out_net\",\"m6000_mng_ip\":\"181.18.20.2\",\"externalCompanyFtpDataNetworkName\":\"Flow_out_net\",\"externalPluginManageNetworkName\":\"plugin_net_2014\",\"externalManageNetworkName\":\"mng_net_2017\",\"sfc_data_network\":\"sfc_data_net_2016\",\"NatIpRange\":\"210.1.1.10-210.1.1.20\",\"location\":\"4050083f-465f-4838-af1e-47a545222ad0\",\"sdncontroller\":\"9b9f02c0-298b-458a-bc9c-be3692e4f35e\"}}},{\"resourceName\":\"overlayvpn\",\"resourceDefId\":\"60c3e96e-0970-4871-b6e0-3b6de7561517\",\"resourceId\":\"60c3e96e-0970-4871-b6e0-3b6de7561518\",\"nsParameters\":{\"locationConstraints\":[],\"additionalParamForNs\":{\"externalDataNetworkName\":\"Flow_out_net\",\"m6000_mng_ip\":\"181.18.20.2\",\"externalCompanyFtpDataNetworkName\":\"Flow_out_net\",\"externalPluginManageNetworkName\":\"plugin_net_2014\",\"externalManageNetworkName\":\"mng_net_2017\",\"sfc_data_network\":\"sfc_data_net_2016\",\"NatIpRange\":\"210.1.1.10-210.1.1.20\",\"location\":\"4050083f-465f-4838-af1e-47a545222ad0\",\"sdncontroller\":\"9b9f02c0-298b-458a-bc9c-be3692e4f35e\"}}}]}}}";\r
754                 Response resp = instance.updateE2EServiceInstance(request, "v3", "12345");\r
755                 String respStr = resp.getEntity().toString();\r
756                 assertTrue(respStr.contains("SVC2000"));\r
757         }\r
758 }\r