2 * ============LICENSE_START=======================================================
\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
11 * http://www.apache.org/licenses/LICENSE-2.0
\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
21 package org.openecomp.mso.apihandlerinfra;
\r
23 import static org.junit.Assert.assertTrue;
\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
32 import javax.ws.rs.core.Response;
\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
58 import mockit.MockUp;
\r
60 public class E2EServiceInstancesTest {
\r
63 public void createE2EServiceInstanceTestSuccess() {
\r
64 new MockUp<RequestsDatabase>() {
\r
66 public OperationStatus getOperationStatusByServiceName(
\r
67 String serviceName) {
\r
68 OperationStatus operationStatus = new OperationStatus();
\r
69 return operationStatus;
\r
72 new MockUp<E2EServiceInstances>() {
\r
74 private void createOperationStatusRecordForError(Action action,
\r
75 String requestId) throws MsoDatabaseException {
\r
79 new MockUp<CatalogDatabase>() {
\r
81 public Service getServiceByModelName(String modelName) {
\r
82 Service svc = new Service();
\r
87 new MockUp<CatalogDatabase>() {
\r
89 public ServiceRecipe getServiceRecipeByModelUUID(String modelUUID,
\r
91 ServiceRecipe rec = new ServiceRecipe();
\r
96 new MockUp<RequestClientFactory>() {
\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
106 new MockUp<CamundaClient>() {
\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
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
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
134 public void createE2EServiceInstanceTestBpelHTTPException() {
\r
135 new MockUp<RequestsDatabase>() {
\r
137 public OperationStatus getOperationStatusByServiceName(
\r
138 String serviceName) {
\r
139 OperationStatus operationStatus = new OperationStatus();
\r
140 return operationStatus;
\r
143 new MockUp<E2EServiceInstances>() {
\r
145 private void createOperationStatusRecordForError(Action action,
\r
146 String requestId) throws MsoDatabaseException {
\r
150 new MockUp<CatalogDatabase>() {
\r
152 public Service getServiceByModelName(String modelName) {
\r
153 Service svc = new Service();
\r
158 new MockUp<CatalogDatabase>() {
\r
160 public ServiceRecipe getServiceRecipeByModelUUID(String modelUUID,
\r
162 ServiceRecipe rec = new ServiceRecipe();
\r
167 new MockUp<RequestClientFactory>() {
\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
177 new MockUp<CamundaClient>() {
\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
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
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
205 public void createE2EServiceInstanceTestBpelHTTPExceptionWithNullREsponseBody() {
\r
206 new MockUp<RequestsDatabase>() {
\r
208 public OperationStatus getOperationStatusByServiceName(
\r
209 String serviceName) {
\r
210 OperationStatus operationStatus = new OperationStatus();
\r
211 return operationStatus;
\r
214 new MockUp<E2EServiceInstances>() {
\r
216 private void createOperationStatusRecordForError(Action action,
\r
217 String requestId) throws MsoDatabaseException {
\r
221 new MockUp<CatalogDatabase>() {
\r
223 public Service getServiceByModelName(String modelName) {
\r
224 Service svc = new Service();
\r
229 new MockUp<CatalogDatabase>() {
\r
231 public ServiceRecipe getServiceRecipeByModelUUID(String modelUUID,
\r
233 ServiceRecipe rec = new ServiceRecipe();
\r
238 new MockUp<RequestClientFactory>() {
\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
248 new MockUp<CamundaClient>() {
\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
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
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
276 public void createE2EServiceInstanceTestNullBPELResponse() {
\r
277 new MockUp<RequestsDatabase>() {
\r
279 public OperationStatus getOperationStatusByServiceName(
\r
280 String serviceName) {
\r
281 OperationStatus operationStatus = new OperationStatus();
\r
282 return operationStatus;
\r
285 new MockUp<E2EServiceInstances>() {
\r
287 private void createOperationStatusRecordForError(Action action,
\r
288 String requestId) throws MsoDatabaseException {
\r
292 new MockUp<CatalogDatabase>() {
\r
294 public Service getServiceByModelName(String modelName) {
\r
295 Service svc = new Service();
\r
300 new MockUp<CatalogDatabase>() {
\r
302 public ServiceRecipe getServiceRecipeByModelUUID(String modelUUID,
\r
304 ServiceRecipe rec = new ServiceRecipe();
\r
309 new MockUp<RequestClientFactory>() {
\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
319 new MockUp<CamundaClient>() {
\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
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
340 public void createE2EServiceInstanceTestBPMNNullREsponse() {
\r
341 new MockUp<RequestsDatabase>() {
\r
343 public OperationStatus getOperationStatusByServiceName(
\r
344 String serviceName) {
\r
345 OperationStatus operationStatus = new OperationStatus();
\r
346 return operationStatus;
\r
349 new MockUp<E2EServiceInstances>() {
\r
351 private void createOperationStatusRecordForError(Action action,
\r
352 String requestId) throws MsoDatabaseException {
\r
356 new MockUp<CatalogDatabase>() {
\r
358 public Service getServiceByModelName(String modelName) {
\r
359 Service svc = new Service();
\r
364 new MockUp<CatalogDatabase>() {
\r
366 public ServiceRecipe getServiceRecipeByModelUUID(String modelUUID,
\r
368 ServiceRecipe rec = new ServiceRecipe();
\r
373 new MockUp<RequestClientFactory>() {
\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
383 new MockUp<CamundaClient>() {
\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
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
400 public void createE2EServiceInstanceTestNullBpmn() {
\r
401 new MockUp<RequestsDatabase>() {
\r
403 public OperationStatus getOperationStatusByServiceName(
\r
404 String serviceName) {
\r
405 OperationStatus operationStatus = new OperationStatus();
\r
406 return operationStatus;
\r
410 new MockUp<E2EServiceInstances>() {
\r
412 private void createOperationStatusRecordForError(Action action,
\r
413 String requestId) throws MsoDatabaseException {
\r
417 new MockUp<CatalogDatabase>() {
\r
419 public Service getServiceByModelName(String modelName) {
\r
420 Service svc = new Service();
\r
425 new MockUp<CatalogDatabase>() {
\r
427 public ServiceRecipe getServiceRecipeByModelUUID(String modelUUID,
\r
429 ServiceRecipe rec = new ServiceRecipe();
\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
441 public void createE2EServiceInstanceTestNullReceipe() {
\r
442 new MockUp<RequestsDatabase>() {
\r
444 public OperationStatus getOperationStatusByServiceName(
\r
445 String serviceName) {
\r
446 OperationStatus operationStatus = new OperationStatus();
\r
447 return operationStatus;
\r
450 new MockUp<E2EServiceInstances>() {
\r
452 private void createOperationStatusRecordForError(Action action,
\r
453 String requestId) throws MsoDatabaseException {
\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
466 public void createE2EServiceInstanceTestNullDBResponse() {
\r
468 new MockUp<RequestsDatabase>() {
\r
470 public OperationStatus getOperationStatusByServiceName(
\r
471 String serviceName) {
\r
472 OperationStatus operationStatus = new OperationStatus();
\r
473 return operationStatus;
\r
476 new MockUp<E2EServiceInstances>() {
\r
478 private void createOperationStatusRecordForError(Action action,
\r
479 String requestId) throws MsoDatabaseException {
\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
492 public void createE2EServiceInstanceTestInvalidRequest() {
\r
493 new MockUp<RequestsDatabase>() {
\r
495 public OperationStatus getOperationStatusByServiceName(
\r
496 String serviceName) {
\r
497 OperationStatus operationStatus = new OperationStatus();
\r
498 return operationStatus;
\r
502 new MockUp<E2EServiceInstances>() {
\r
504 private void createOperationStatusRecordForError(Action action,
\r
505 String requestId) throws MsoDatabaseException {
\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
517 public void createE2EServiceInstanceTestEmptyDBQuery() {
\r
518 new MockUp<E2EServiceInstances>() {
\r
520 private void createOperationStatusRecordForError(Action action,
\r
521 String requestId) throws MsoDatabaseException {
\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
535 public void createE2EServiceInstanceTestDBQueryFail() {
\r
536 new MockUp<RequestsDatabase>() {
\r
538 public OperationStatus getOperationStatusByServiceName(
\r
539 String serviceName) {
\r
540 OperationStatus operationStatus = new OperationStatus();
\r
541 return operationStatus;
\r
545 new MockUp<E2EServiceInstances>() {
\r
547 private void createOperationStatusRecordForError(Action action,
\r
548 String requestId) throws MsoDatabaseException {
\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
560 public void createE2EServiceInstanceTestForEmptyRequest() {
\r
562 new MockUp<E2EServiceInstances>() {
\r
564 private void createOperationStatusRecordForError(Action action,
\r
565 String requestId) throws MsoDatabaseException {
\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
574 .contains("Mapping of request to JSON object failed. No content to map to Object due to end of input"));
\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
583 String respStr = resp.getEntity().toString();
\r
584 assertTrue(respStr.contains("SVC1000"));
\r
588 public void getE2EServiceInstanceTest() {
\r
590 new MockUp<RequestsDatabase>() {
\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
608 E2EServiceInstances instance = new E2EServiceInstances();
\r
609 Response resp = instance
\r
610 .getE2EServiceInstances("12345", "v3", "123456");
\r
615 public void updateE2EServiceInstanceTestNormal() {
\r
616 new MockUp<RequestsDatabase>() {
\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
625 new MockUp<E2EServiceInstances>() {
\r
627 private void createOperationStatusRecordForError(Action action,
\r
628 String requestId) throws MsoDatabaseException {
\r
632 new MockUp<CatalogDatabase>() {
\r
634 public Service getServiceByModelName(String modelName) {
\r
635 Service svc = new Service();
\r
640 new MockUp<CatalogDatabase>() {
\r
642 public ServiceRecipe getServiceRecipeByModelUUID(String modelUUID,
\r
644 ServiceRecipe rec = new ServiceRecipe();
\r
649 new MockUp<RequestClientFactory>() {
\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
659 new MockUp<CamundaClient>() {
\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
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
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
687 public void updateE2EServiceInstanceTestChkStatusFalse() {
\r
688 new MockUp<RequestsDatabase>() {
\r
690 public OperationStatus getOperationStatusByServiceId(
\r
691 String serviceID) {
\r
692 OperationStatus operationStatus = new OperationStatus();
\r
693 return operationStatus;
\r
696 new MockUp<E2EServiceInstances>() {
\r
698 private void createOperationStatusRecordForError(Action action,
\r
699 String requestId) throws MsoDatabaseException {
\r
703 new MockUp<CatalogDatabase>() {
\r
705 public Service getServiceByModelName(String modelName) {
\r
706 Service svc = new Service();
\r
711 new MockUp<CatalogDatabase>() {
\r
713 public ServiceRecipe getServiceRecipeByModelUUID(String modelUUID,
\r
715 ServiceRecipe rec = new ServiceRecipe();
\r
720 new MockUp<RequestClientFactory>() {
\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
730 new MockUp<CamundaClient>() {
\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
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
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