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