Merge "Reduce log noise/warnings format to conventions"
[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.contains("success"));\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.contains("SVC2000"));\r
755     }\r
756 }\r