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.junit.Ignore;
\r
45 import org.mockito.Mockito;
\r
46 import org.openecomp.mso.apihandler.common.CamundaClient;
\r
47 import org.openecomp.mso.apihandler.common.RequestClient;
\r
48 import org.openecomp.mso.apihandler.common.RequestClientFactory;
\r
49 import org.openecomp.mso.db.catalog.CatalogDatabase;
\r
50 import org.openecomp.mso.db.catalog.beans.Service;
\r
51 import org.openecomp.mso.db.catalog.beans.ServiceRecipe;
\r
52 import org.openecomp.mso.properties.MsoDatabaseException;
\r
53 import org.openecomp.mso.properties.MsoJavaProperties;
\r
54 import org.openecomp.mso.requestsdb.InfraActiveRequests;
\r
55 import org.openecomp.mso.requestsdb.OperationStatus;
\r
56 import org.openecomp.mso.requestsdb.RequestsDatabase;
\r
59 import mockit.MockUp;
\r
61 public class E2EServiceInstancesTest {
\r
64 public void createE2EServiceInstanceTestSuccess() {
\r
65 new MockUp<RequestsDatabase>() {
\r
67 public OperationStatus getOperationStatusByServiceName(
\r
68 String serviceName) {
\r
69 OperationStatus operationStatus = new OperationStatus();
\r
70 return operationStatus;
\r
73 new MockUp<E2EServiceInstances>() {
\r
75 private void createOperationStatusRecordForError(Action action,
\r
76 String requestId) throws MsoDatabaseException {
\r
80 new MockUp<CatalogDatabase>() {
\r
82 public Service getServiceByModelName(String modelName) {
\r
83 Service svc = new Service();
\r
88 new MockUp<CatalogDatabase>() {
\r
90 public ServiceRecipe getServiceRecipeByModelUUID(String modelUUID,
\r
92 ServiceRecipe rec = new ServiceRecipe();
\r
97 new MockUp<RequestClientFactory>() {
\r
99 public RequestClient getRequestClient(String orchestrationURI,
\r
100 MsoJavaProperties props) throws IllegalStateException {
\r
101 RequestClient client = new CamundaClient();
\r
102 client.setUrl("/test/url");
\r
107 new MockUp<CamundaClient>() {
\r
109 public HttpResponse post(String requestId, boolean isBaseVfModule,
\r
110 int recipeTimeout, String requestAction,
\r
111 String serviceInstanceId, String vnfId, String vfModuleId,
\r
112 String volumeGroupId, String networkId, String configurationId, String serviceType,
\r
113 String vnfType, String vfModuleType, String networkType,
\r
114 String requestDetails, String recipeParamXsd) {
\r
115 ProtocolVersion pv = new ProtocolVersion("HTTP", 1, 1);
\r
116 HttpResponse resp = new BasicHttpResponse(pv, 202,
\r
118 BasicHttpEntity entity = new BasicHttpEntity();
\r
119 String body = "{\"response\":\"success\",\"message\":\"success\"}";
\r
120 InputStream instream = new ByteArrayInputStream(body.getBytes());
\r
121 entity.setContent(instream);
\r
122 resp.setEntity(entity);
\r
127 E2EServiceInstances instance = new E2EServiceInstances();
\r
128 String request = "{\"service\":{\"name\":\"so_test4\",\"description\":\"so_test2\",\"serviceDefId\":\"60c3e96e-0970-4871-b6e0-3b6de7561519\",\"templateId\":\"592f9437-a9c0-4303-b9f6-c445bb7e9814\",\"parameters\":{\"globalSubscriberId\":\"123457\",\"subscriberName\":\"Customer1\",\"serviceType\":\"voLTE\",\"templateName\":\"voLTE Service:1.0\",\"resources\":[{\"resourceName\":\"vIMS\",\"resourceDefId\":\"60c3e96e-0970-4871-b6e0-3b6de7561516\",\"resourceId\":\"60c3e96e-0970-4871-b6e0-3b6de7561512\",\"nsParameters\":{\"locationConstraints\":[{\"vnfProfileId\":\"zte-vBAS-1.0\",\"locationConstraints\":{\"vimId\":\"4050083f-465f-4838-af1e-47a545222ad0\"}},{\"vnfProfileId\":\"zte-vMME-1.0\",\"locationConstraints\":{\"vimId\":\"4050083f-465f-4838-af1e-47a545222ad0\"}}],\"additionalParamForNs\":{}}},{\"resourceName\":\"vEPC\",\"resourceDefId\":\"61c3e96e-0970-4871-b6e0-3b6de7561516\",\"resourceId\":\"62c3e96e-0970-4871-b6e0-3b6de7561512\",\"nsParameters\":{\"locationConstraints\":[{\"vnfProfileId\":\"zte-CSCF-1.0\",\"locationConstraints\":{\"vimId\":\"4050083f-465f-4838-af1e-47a545222ad1\"}}],\"additionalParamForNs\":{}}},{\"resourceName\":\"underlayvpn\",\"resourceDefId\":\"60c3e96e-0970-4871-b6e0-3b6de7561513\",\"resourceId\":\"60c3e96e-0970-4871-b6e0-3b6de7561514\",\"nsParameters\":{\"locationConstraints\":[],\"additionalParamForNs\":{\"externalDataNetworkName\":\"Flow_out_net\",\"m6000_mng_ip\":\"181.18.20.2\",\"externalCompanyFtpDataNetworkName\":\"Flow_out_net\",\"externalPluginManageNetworkName\":\"plugin_net_2014\",\"externalManageNetworkName\":\"mng_net_2017\",\"sfc_data_network\":\"sfc_data_net_2016\",\"NatIpRange\":\"210.1.1.10-210.1.1.20\",\"location\":\"4050083f-465f-4838-af1e-47a545222ad0\",\"sdncontroller\":\"9b9f02c0-298b-458a-bc9c-be3692e4f35e\"}}},{\"resourceName\":\"overlayvpn\",\"resourceDefId\":\"60c3e96e-0970-4871-b6e0-3b6de7561517\",\"resourceId\":\"60c3e96e-0970-4871-b6e0-3b6de7561518\",\"nsParameters\":{\"locationConstraints\":[],\"additionalParamForNs\":{\"externalDataNetworkName\":\"Flow_out_net\",\"m6000_mng_ip\":\"181.18.20.2\",\"externalCompanyFtpDataNetworkName\":\"Flow_out_net\",\"externalPluginManageNetworkName\":\"plugin_net_2014\",\"externalManageNetworkName\":\"mng_net_2017\",\"sfc_data_network\":\"sfc_data_net_2016\",\"NatIpRange\":\"210.1.1.10-210.1.1.20\",\"location\":\"4050083f-465f-4838-af1e-47a545222ad0\",\"sdncontroller\":\"9b9f02c0-298b-458a-bc9c-be3692e4f35e\"}}}]}}}";
\r
129 Response resp = instance.createE2EServiceInstance(request, "v3");
\r
130 String respStr = resp.getEntity().toString();
\r
131 assertTrue(respStr.contains("SVC2000"));
\r
135 public void createE2EServiceInstanceTestBpelHTTPException() {
\r
136 new MockUp<RequestsDatabase>() {
\r
138 public OperationStatus getOperationStatusByServiceName(
\r
139 String serviceName) {
\r
140 OperationStatus operationStatus = new OperationStatus();
\r
141 return operationStatus;
\r
144 new MockUp<E2EServiceInstances>() {
\r
146 private void createOperationStatusRecordForError(Action action,
\r
147 String requestId) throws MsoDatabaseException {
\r
151 new MockUp<CatalogDatabase>() {
\r
153 public Service getServiceByModelName(String modelName) {
\r
154 Service svc = new Service();
\r
159 new MockUp<CatalogDatabase>() {
\r
161 public ServiceRecipe getServiceRecipeByModelUUID(String modelUUID,
\r
163 ServiceRecipe rec = new ServiceRecipe();
\r
168 new MockUp<RequestClientFactory>() {
\r
170 public RequestClient getRequestClient(String orchestrationURI,
\r
171 MsoJavaProperties props) throws IllegalStateException {
\r
172 RequestClient client = new CamundaClient();
\r
173 client.setUrl("/test/url");
\r
178 new MockUp<CamundaClient>() {
\r
180 public HttpResponse post(String requestId, boolean isBaseVfModule,
\r
181 int recipeTimeout, String requestAction,
\r
182 String serviceInstanceId, String vnfId, String vfModuleId,
\r
183 String volumeGroupId, String networkId, String configurationId, String serviceType,
\r
184 String vnfType, String vfModuleType, String networkType,
\r
185 String requestDetails, String recipeParamXsd) {
\r
186 ProtocolVersion pv = new ProtocolVersion("HTTP", 1, 1);
\r
187 HttpResponse resp = new BasicHttpResponse(pv, 500,
\r
189 BasicHttpEntity entity = new BasicHttpEntity();
\r
190 String body = "{\"response\":\"success\",\"message\":\"success\"}";
\r
191 InputStream instream = new ByteArrayInputStream(body.getBytes());
\r
192 entity.setContent(instream);
\r
193 resp.setEntity(entity);
\r
198 E2EServiceInstances instance = new E2EServiceInstances();
\r
199 String request = "{\"service\":{\"name\":\"so_test4\",\"description\":\"so_test2\",\"serviceDefId\":\"60c3e96e-0970-4871-b6e0-3b6de7561519\",\"templateId\":\"592f9437-a9c0-4303-b9f6-c445bb7e9814\",\"parameters\":{\"globalSubscriberId\":\"123457\",\"subscriberName\":\"Customer1\",\"serviceType\":\"voLTE\",\"templateName\":\"voLTE Service:1.0\",\"resources\":[{\"resourceName\":\"vIMS\",\"resourceDefId\":\"60c3e96e-0970-4871-b6e0-3b6de7561516\",\"resourceId\":\"60c3e96e-0970-4871-b6e0-3b6de7561512\",\"nsParameters\":{\"locationConstraints\":[{\"vnfProfileId\":\"zte-vBAS-1.0\",\"locationConstraints\":{\"vimId\":\"4050083f-465f-4838-af1e-47a545222ad0\"}},{\"vnfProfileId\":\"zte-vMME-1.0\",\"locationConstraints\":{\"vimId\":\"4050083f-465f-4838-af1e-47a545222ad0\"}}],\"additionalParamForNs\":{}}},{\"resourceName\":\"vEPC\",\"resourceDefId\":\"61c3e96e-0970-4871-b6e0-3b6de7561516\",\"resourceId\":\"62c3e96e-0970-4871-b6e0-3b6de7561512\",\"nsParameters\":{\"locationConstraints\":[{\"vnfProfileId\":\"zte-CSCF-1.0\",\"locationConstraints\":{\"vimId\":\"4050083f-465f-4838-af1e-47a545222ad1\"}}],\"additionalParamForNs\":{}}},{\"resourceName\":\"underlayvpn\",\"resourceDefId\":\"60c3e96e-0970-4871-b6e0-3b6de7561513\",\"resourceId\":\"60c3e96e-0970-4871-b6e0-3b6de7561514\",\"nsParameters\":{\"locationConstraints\":[],\"additionalParamForNs\":{\"externalDataNetworkName\":\"Flow_out_net\",\"m6000_mng_ip\":\"181.18.20.2\",\"externalCompanyFtpDataNetworkName\":\"Flow_out_net\",\"externalPluginManageNetworkName\":\"plugin_net_2014\",\"externalManageNetworkName\":\"mng_net_2017\",\"sfc_data_network\":\"sfc_data_net_2016\",\"NatIpRange\":\"210.1.1.10-210.1.1.20\",\"location\":\"4050083f-465f-4838-af1e-47a545222ad0\",\"sdncontroller\":\"9b9f02c0-298b-458a-bc9c-be3692e4f35e\"}}},{\"resourceName\":\"overlayvpn\",\"resourceDefId\":\"60c3e96e-0970-4871-b6e0-3b6de7561517\",\"resourceId\":\"60c3e96e-0970-4871-b6e0-3b6de7561518\",\"nsParameters\":{\"locationConstraints\":[],\"additionalParamForNs\":{\"externalDataNetworkName\":\"Flow_out_net\",\"m6000_mng_ip\":\"181.18.20.2\",\"externalCompanyFtpDataNetworkName\":\"Flow_out_net\",\"externalPluginManageNetworkName\":\"plugin_net_2014\",\"externalManageNetworkName\":\"mng_net_2017\",\"sfc_data_network\":\"sfc_data_net_2016\",\"NatIpRange\":\"210.1.1.10-210.1.1.20\",\"location\":\"4050083f-465f-4838-af1e-47a545222ad0\",\"sdncontroller\":\"9b9f02c0-298b-458a-bc9c-be3692e4f35e\"}}}]}}}";
\r
200 Response resp = instance.createE2EServiceInstance(request, "v3");
\r
201 String respStr = resp.getEntity().toString();
\r
202 assertTrue(respStr.contains("SVC2000"));
\r
206 public void createE2EServiceInstanceTestBpelHTTPExceptionWithNullREsponseBody() {
\r
207 new MockUp<RequestsDatabase>() {
\r
209 public OperationStatus getOperationStatusByServiceName(
\r
210 String serviceName) {
\r
211 OperationStatus operationStatus = new OperationStatus();
\r
212 return operationStatus;
\r
215 new MockUp<E2EServiceInstances>() {
\r
217 private void createOperationStatusRecordForError(Action action,
\r
218 String requestId) throws MsoDatabaseException {
\r
222 new MockUp<CatalogDatabase>() {
\r
224 public Service getServiceByModelName(String modelName) {
\r
225 Service svc = new Service();
\r
230 new MockUp<CatalogDatabase>() {
\r
232 public ServiceRecipe getServiceRecipeByModelUUID(String modelUUID,
\r
234 ServiceRecipe rec = new ServiceRecipe();
\r
239 new MockUp<RequestClientFactory>() {
\r
241 public RequestClient getRequestClient(String orchestrationURI,
\r
242 MsoJavaProperties props) throws IllegalStateException {
\r
243 RequestClient client = new CamundaClient();
\r
244 client.setUrl("/test/url");
\r
249 new MockUp<CamundaClient>() {
\r
251 public HttpResponse post(String requestId, boolean isBaseVfModule,
\r
252 int recipeTimeout, String requestAction,
\r
253 String serviceInstanceId, String vnfId, String vfModuleId,
\r
254 String volumeGroupId, String networkId, String configurationId, String serviceType,
\r
255 String vnfType, String vfModuleType, String networkType,
\r
256 String requestDetails, String recipeParamXsd) {
\r
257 ProtocolVersion pv = new ProtocolVersion("HTTP", 1, 1);
\r
258 HttpResponse resp = new BasicHttpResponse(pv, 500,
\r
260 BasicHttpEntity entity = new BasicHttpEntity();
\r
261 String body = "{\"response\":\"\",\"message\":\"success\"}";
\r
262 InputStream instream = new ByteArrayInputStream(body.getBytes());
\r
263 entity.setContent(instream);
\r
264 resp.setEntity(entity);
\r
269 E2EServiceInstances instance = new E2EServiceInstances();
\r
270 String request = "{\"service\":{\"name\":\"so_test4\",\"description\":\"so_test2\",\"serviceDefId\":\"60c3e96e-0970-4871-b6e0-3b6de7561519\",\"templateId\":\"592f9437-a9c0-4303-b9f6-c445bb7e9814\",\"parameters\":{\"globalSubscriberId\":\"123457\",\"subscriberName\":\"Customer1\",\"serviceType\":\"voLTE\",\"templateName\":\"voLTE Service:1.0\",\"resources\":[{\"resourceName\":\"vIMS\",\"resourceDefId\":\"60c3e96e-0970-4871-b6e0-3b6de7561516\",\"resourceId\":\"60c3e96e-0970-4871-b6e0-3b6de7561512\",\"nsParameters\":{\"locationConstraints\":[{\"vnfProfileId\":\"zte-vBAS-1.0\",\"locationConstraints\":{\"vimId\":\"4050083f-465f-4838-af1e-47a545222ad0\"}},{\"vnfProfileId\":\"zte-vMME-1.0\",\"locationConstraints\":{\"vimId\":\"4050083f-465f-4838-af1e-47a545222ad0\"}}],\"additionalParamForNs\":{}}},{\"resourceName\":\"vEPC\",\"resourceDefId\":\"61c3e96e-0970-4871-b6e0-3b6de7561516\",\"resourceId\":\"62c3e96e-0970-4871-b6e0-3b6de7561512\",\"nsParameters\":{\"locationConstraints\":[{\"vnfProfileId\":\"zte-CSCF-1.0\",\"locationConstraints\":{\"vimId\":\"4050083f-465f-4838-af1e-47a545222ad1\"}}],\"additionalParamForNs\":{}}},{\"resourceName\":\"underlayvpn\",\"resourceDefId\":\"60c3e96e-0970-4871-b6e0-3b6de7561513\",\"resourceId\":\"60c3e96e-0970-4871-b6e0-3b6de7561514\",\"nsParameters\":{\"locationConstraints\":[],\"additionalParamForNs\":{\"externalDataNetworkName\":\"Flow_out_net\",\"m6000_mng_ip\":\"181.18.20.2\",\"externalCompanyFtpDataNetworkName\":\"Flow_out_net\",\"externalPluginManageNetworkName\":\"plugin_net_2014\",\"externalManageNetworkName\":\"mng_net_2017\",\"sfc_data_network\":\"sfc_data_net_2016\",\"NatIpRange\":\"210.1.1.10-210.1.1.20\",\"location\":\"4050083f-465f-4838-af1e-47a545222ad0\",\"sdncontroller\":\"9b9f02c0-298b-458a-bc9c-be3692e4f35e\"}}},{\"resourceName\":\"overlayvpn\",\"resourceDefId\":\"60c3e96e-0970-4871-b6e0-3b6de7561517\",\"resourceId\":\"60c3e96e-0970-4871-b6e0-3b6de7561518\",\"nsParameters\":{\"locationConstraints\":[],\"additionalParamForNs\":{\"externalDataNetworkName\":\"Flow_out_net\",\"m6000_mng_ip\":\"181.18.20.2\",\"externalCompanyFtpDataNetworkName\":\"Flow_out_net\",\"externalPluginManageNetworkName\":\"plugin_net_2014\",\"externalManageNetworkName\":\"mng_net_2017\",\"sfc_data_network\":\"sfc_data_net_2016\",\"NatIpRange\":\"210.1.1.10-210.1.1.20\",\"location\":\"4050083f-465f-4838-af1e-47a545222ad0\",\"sdncontroller\":\"9b9f02c0-298b-458a-bc9c-be3692e4f35e\"}}}]}}}";
\r
271 Response resp = instance.createE2EServiceInstance(request, "v3");
\r
272 String respStr = resp.getEntity().toString();
\r
273 assertTrue(respStr.contains("SVC2000"));
\r
277 public void createE2EServiceInstanceTestNullBPELResponse() {
\r
278 new MockUp<RequestsDatabase>() {
\r
280 public OperationStatus getOperationStatusByServiceName(
\r
281 String serviceName) {
\r
282 OperationStatus operationStatus = new OperationStatus();
\r
283 return operationStatus;
\r
286 new MockUp<E2EServiceInstances>() {
\r
288 private void createOperationStatusRecordForError(Action action,
\r
289 String requestId) throws MsoDatabaseException {
\r
293 new MockUp<CatalogDatabase>() {
\r
295 public Service getServiceByModelName(String modelName) {
\r
296 Service svc = new Service();
\r
301 new MockUp<CatalogDatabase>() {
\r
303 public ServiceRecipe getServiceRecipeByModelUUID(String modelUUID,
\r
305 ServiceRecipe rec = new ServiceRecipe();
\r
310 new MockUp<RequestClientFactory>() {
\r
312 public RequestClient getRequestClient(String orchestrationURI,
\r
313 MsoJavaProperties props) throws IllegalStateException {
\r
314 RequestClient client = new CamundaClient();
\r
315 client.setUrl("/test/url");
\r
320 new MockUp<CamundaClient>() {
\r
322 public HttpResponse post(String requestId, boolean isBaseVfModule,
\r
323 int recipeTimeout, String requestAction,
\r
324 String serviceInstanceId, String vnfId, String vfModuleId,
\r
325 String volumeGroupId, String networkId, String configurationId, String serviceType,
\r
326 String vnfType, String vfModuleType, String networkType,
\r
327 String requestDetails, String recipeParamXsd) {
\r
328 HttpResponse resp = null;
\r
333 E2EServiceInstances instance = new E2EServiceInstances();
\r
334 String request = "{\"service\":{\"name\":\"so_test4\",\"description\":\"so_test2\",\"serviceDefId\":\"60c3e96e-0970-4871-b6e0-3b6de7561519\",\"templateId\":\"592f9437-a9c0-4303-b9f6-c445bb7e9814\",\"parameters\":{\"globalSubscriberId\":\"123457\",\"subscriberName\":\"Customer1\",\"serviceType\":\"voLTE\",\"templateName\":\"voLTE Service:1.0\",\"resources\":[{\"resourceName\":\"vIMS\",\"resourceDefId\":\"60c3e96e-0970-4871-b6e0-3b6de7561516\",\"resourceId\":\"60c3e96e-0970-4871-b6e0-3b6de7561512\",\"nsParameters\":{\"locationConstraints\":[{\"vnfProfileId\":\"zte-vBAS-1.0\",\"locationConstraints\":{\"vimId\":\"4050083f-465f-4838-af1e-47a545222ad0\"}},{\"vnfProfileId\":\"zte-vMME-1.0\",\"locationConstraints\":{\"vimId\":\"4050083f-465f-4838-af1e-47a545222ad0\"}}],\"additionalParamForNs\":{}}},{\"resourceName\":\"vEPC\",\"resourceDefId\":\"61c3e96e-0970-4871-b6e0-3b6de7561516\",\"resourceId\":\"62c3e96e-0970-4871-b6e0-3b6de7561512\",\"nsParameters\":{\"locationConstraints\":[{\"vnfProfileId\":\"zte-CSCF-1.0\",\"locationConstraints\":{\"vimId\":\"4050083f-465f-4838-af1e-47a545222ad1\"}}],\"additionalParamForNs\":{}}},{\"resourceName\":\"underlayvpn\",\"resourceDefId\":\"60c3e96e-0970-4871-b6e0-3b6de7561513\",\"resourceId\":\"60c3e96e-0970-4871-b6e0-3b6de7561514\",\"nsParameters\":{\"locationConstraints\":[],\"additionalParamForNs\":{\"externalDataNetworkName\":\"Flow_out_net\",\"m6000_mng_ip\":\"181.18.20.2\",\"externalCompanyFtpDataNetworkName\":\"Flow_out_net\",\"externalPluginManageNetworkName\":\"plugin_net_2014\",\"externalManageNetworkName\":\"mng_net_2017\",\"sfc_data_network\":\"sfc_data_net_2016\",\"NatIpRange\":\"210.1.1.10-210.1.1.20\",\"location\":\"4050083f-465f-4838-af1e-47a545222ad0\",\"sdncontroller\":\"9b9f02c0-298b-458a-bc9c-be3692e4f35e\"}}},{\"resourceName\":\"overlayvpn\",\"resourceDefId\":\"60c3e96e-0970-4871-b6e0-3b6de7561517\",\"resourceId\":\"60c3e96e-0970-4871-b6e0-3b6de7561518\",\"nsParameters\":{\"locationConstraints\":[],\"additionalParamForNs\":{\"externalDataNetworkName\":\"Flow_out_net\",\"m6000_mng_ip\":\"181.18.20.2\",\"externalCompanyFtpDataNetworkName\":\"Flow_out_net\",\"externalPluginManageNetworkName\":\"plugin_net_2014\",\"externalManageNetworkName\":\"mng_net_2017\",\"sfc_data_network\":\"sfc_data_net_2016\",\"NatIpRange\":\"210.1.1.10-210.1.1.20\",\"location\":\"4050083f-465f-4838-af1e-47a545222ad0\",\"sdncontroller\":\"9b9f02c0-298b-458a-bc9c-be3692e4f35e\"}}}]}}}";
\r
335 Response resp = instance.createE2EServiceInstance(request, "v3");
\r
336 String respStr = resp.getEntity().toString();
\r
337 assertTrue(respStr.contains("SVC2000"));
\r
341 public void createE2EServiceInstanceTestBPMNNullREsponse() {
\r
342 new MockUp<RequestsDatabase>() {
\r
344 public OperationStatus getOperationStatusByServiceName(
\r
345 String serviceName) {
\r
346 OperationStatus operationStatus = new OperationStatus();
\r
347 return operationStatus;
\r
350 new MockUp<E2EServiceInstances>() {
\r
352 private void createOperationStatusRecordForError(Action action,
\r
353 String requestId) throws MsoDatabaseException {
\r
357 new MockUp<CatalogDatabase>() {
\r
359 public Service getServiceByModelName(String modelName) {
\r
360 Service svc = new Service();
\r
365 new MockUp<CatalogDatabase>() {
\r
367 public ServiceRecipe getServiceRecipeByModelUUID(String modelUUID,
\r
369 ServiceRecipe rec = new ServiceRecipe();
\r
374 new MockUp<RequestClientFactory>() {
\r
376 public RequestClient getRequestClient(String orchestrationURI,
\r
377 MsoJavaProperties props) throws IllegalStateException {
\r
378 RequestClient client = new CamundaClient();
\r
379 client.setUrl("/test/url");
\r
384 new MockUp<CamundaClient>() {
\r
386 public HttpResponse post(String camundaReqXML, String requestId,
\r
387 String requestTimeout, String schemaVersion,
\r
388 String serviceInstanceId, String action) {
\r
389 HttpResponse resp = null;
\r
393 E2EServiceInstances instance = new E2EServiceInstances();
\r
394 String request = "{\"service\":{\"name\":\"so_test4\",\"description\":\"so_test2\",\"serviceDefId\":\"60c3e96e-0970-4871-b6e0-3b6de7561519\",\"templateId\":\"592f9437-a9c0-4303-b9f6-c445bb7e9814\",\"parameters\":{\"globalSubscriberId\":\"123457\",\"subscriberName\":\"Customer1\",\"serviceType\":\"voLTE\",\"templateName\":\"voLTE Service:1.0\",\"resources\":[{\"resourceName\":\"vIMS\",\"resourceDefId\":\"60c3e96e-0970-4871-b6e0-3b6de7561516\",\"resourceId\":\"60c3e96e-0970-4871-b6e0-3b6de7561512\",\"nsParameters\":{\"locationConstraints\":[{\"vnfProfileId\":\"zte-vBAS-1.0\",\"locationConstraints\":{\"vimId\":\"4050083f-465f-4838-af1e-47a545222ad0\"}},{\"vnfProfileId\":\"zte-vMME-1.0\",\"locationConstraints\":{\"vimId\":\"4050083f-465f-4838-af1e-47a545222ad0\"}}],\"additionalParamForNs\":{}}},{\"resourceName\":\"vEPC\",\"resourceDefId\":\"61c3e96e-0970-4871-b6e0-3b6de7561516\",\"resourceId\":\"62c3e96e-0970-4871-b6e0-3b6de7561512\",\"nsParameters\":{\"locationConstraints\":[{\"vnfProfileId\":\"zte-CSCF-1.0\",\"locationConstraints\":{\"vimId\":\"4050083f-465f-4838-af1e-47a545222ad1\"}}],\"additionalParamForNs\":{}}},{\"resourceName\":\"underlayvpn\",\"resourceDefId\":\"60c3e96e-0970-4871-b6e0-3b6de7561513\",\"resourceId\":\"60c3e96e-0970-4871-b6e0-3b6de7561514\",\"nsParameters\":{\"locationConstraints\":[],\"additionalParamForNs\":{\"externalDataNetworkName\":\"Flow_out_net\",\"m6000_mng_ip\":\"181.18.20.2\",\"externalCompanyFtpDataNetworkName\":\"Flow_out_net\",\"externalPluginManageNetworkName\":\"plugin_net_2014\",\"externalManageNetworkName\":\"mng_net_2017\",\"sfc_data_network\":\"sfc_data_net_2016\",\"NatIpRange\":\"210.1.1.10-210.1.1.20\",\"location\":\"4050083f-465f-4838-af1e-47a545222ad0\",\"sdncontroller\":\"9b9f02c0-298b-458a-bc9c-be3692e4f35e\"}}},{\"resourceName\":\"overlayvpn\",\"resourceDefId\":\"60c3e96e-0970-4871-b6e0-3b6de7561517\",\"resourceId\":\"60c3e96e-0970-4871-b6e0-3b6de7561518\",\"nsParameters\":{\"locationConstraints\":[],\"additionalParamForNs\":{\"externalDataNetworkName\":\"Flow_out_net\",\"m6000_mng_ip\":\"181.18.20.2\",\"externalCompanyFtpDataNetworkName\":\"Flow_out_net\",\"externalPluginManageNetworkName\":\"plugin_net_2014\",\"externalManageNetworkName\":\"mng_net_2017\",\"sfc_data_network\":\"sfc_data_net_2016\",\"NatIpRange\":\"210.1.1.10-210.1.1.20\",\"location\":\"4050083f-465f-4838-af1e-47a545222ad0\",\"sdncontroller\":\"9b9f02c0-298b-458a-bc9c-be3692e4f35e\"}}}]}}}";
\r
395 Response resp = instance.createE2EServiceInstance(request, "v3");
\r
396 String respStr = resp.getEntity().toString();
\r
397 assertTrue(respStr.contains("SVC2000"));
\r
401 public void createE2EServiceInstanceTestNullBpmn() {
\r
402 new MockUp<RequestsDatabase>() {
\r
404 public OperationStatus getOperationStatusByServiceName(
\r
405 String serviceName) {
\r
406 OperationStatus operationStatus = new OperationStatus();
\r
407 return operationStatus;
\r
411 new MockUp<E2EServiceInstances>() {
\r
413 private void createOperationStatusRecordForError(Action action,
\r
414 String requestId) throws MsoDatabaseException {
\r
418 new MockUp<CatalogDatabase>() {
\r
420 public Service getServiceByModelName(String modelName) {
\r
421 Service svc = new Service();
\r
426 new MockUp<CatalogDatabase>() {
\r
428 public ServiceRecipe getServiceRecipeByModelUUID(String modelUUID,
\r
430 ServiceRecipe rec = new ServiceRecipe();
\r
434 E2EServiceInstances instance = new E2EServiceInstances();
\r
435 String request = "{\"service\":{\"name\":\"so_test4\",\"description\":\"so_test2\",\"serviceDefId\":\"60c3e96e-0970-4871-b6e0-3b6de7561519\",\"templateId\":\"592f9437-a9c0-4303-b9f6-c445bb7e9814\",\"parameters\":{\"globalSubscriberId\":\"123457\",\"subscriberName\":\"Customer1\",\"serviceType\":\"voLTE\",\"templateName\":\"voLTE Service:1.0\",\"resources\":[{\"resourceName\":\"vIMS\",\"resourceDefId\":\"60c3e96e-0970-4871-b6e0-3b6de7561516\",\"resourceId\":\"60c3e96e-0970-4871-b6e0-3b6de7561512\",\"nsParameters\":{\"locationConstraints\":[{\"vnfProfileId\":\"zte-vBAS-1.0\",\"locationConstraints\":{\"vimId\":\"4050083f-465f-4838-af1e-47a545222ad0\"}},{\"vnfProfileId\":\"zte-vMME-1.0\",\"locationConstraints\":{\"vimId\":\"4050083f-465f-4838-af1e-47a545222ad0\"}}],\"additionalParamForNs\":{}}},{\"resourceName\":\"vEPC\",\"resourceDefId\":\"61c3e96e-0970-4871-b6e0-3b6de7561516\",\"resourceId\":\"62c3e96e-0970-4871-b6e0-3b6de7561512\",\"nsParameters\":{\"locationConstraints\":[{\"vnfProfileId\":\"zte-CSCF-1.0\",\"locationConstraints\":{\"vimId\":\"4050083f-465f-4838-af1e-47a545222ad1\"}}],\"additionalParamForNs\":{}}},{\"resourceName\":\"underlayvpn\",\"resourceDefId\":\"60c3e96e-0970-4871-b6e0-3b6de7561513\",\"resourceId\":\"60c3e96e-0970-4871-b6e0-3b6de7561514\",\"nsParameters\":{\"locationConstraints\":[],\"additionalParamForNs\":{\"externalDataNetworkName\":\"Flow_out_net\",\"m6000_mng_ip\":\"181.18.20.2\",\"externalCompanyFtpDataNetworkName\":\"Flow_out_net\",\"externalPluginManageNetworkName\":\"plugin_net_2014\",\"externalManageNetworkName\":\"mng_net_2017\",\"sfc_data_network\":\"sfc_data_net_2016\",\"NatIpRange\":\"210.1.1.10-210.1.1.20\",\"location\":\"4050083f-465f-4838-af1e-47a545222ad0\",\"sdncontroller\":\"9b9f02c0-298b-458a-bc9c-be3692e4f35e\"}}},{\"resourceName\":\"overlayvpn\",\"resourceDefId\":\"60c3e96e-0970-4871-b6e0-3b6de7561517\",\"resourceId\":\"60c3e96e-0970-4871-b6e0-3b6de7561518\",\"nsParameters\":{\"locationConstraints\":[],\"additionalParamForNs\":{\"externalDataNetworkName\":\"Flow_out_net\",\"m6000_mng_ip\":\"181.18.20.2\",\"externalCompanyFtpDataNetworkName\":\"Flow_out_net\",\"externalPluginManageNetworkName\":\"plugin_net_2014\",\"externalManageNetworkName\":\"mng_net_2017\",\"sfc_data_network\":\"sfc_data_net_2016\",\"NatIpRange\":\"210.1.1.10-210.1.1.20\",\"location\":\"4050083f-465f-4838-af1e-47a545222ad0\",\"sdncontroller\":\"9b9f02c0-298b-458a-bc9c-be3692e4f35e\"}}}]}}}";
\r
436 Response resp = instance.createE2EServiceInstance(request, "v3");
\r
437 String respStr = resp.getEntity().toString();
\r
438 assertTrue(respStr.contains("SVC2000"));
\r
442 public void createE2EServiceInstanceTestNullReceipe() {
\r
443 new MockUp<RequestsDatabase>() {
\r
445 public OperationStatus getOperationStatusByServiceName(
\r
446 String serviceName) {
\r
447 OperationStatus operationStatus = new OperationStatus();
\r
448 return operationStatus;
\r
451 new MockUp<E2EServiceInstances>() {
\r
453 private void createOperationStatusRecordForError(Action action,
\r
454 String requestId) throws MsoDatabaseException {
\r
459 E2EServiceInstances instance = new E2EServiceInstances();
\r
460 String request = "{\"service\":{\"name\":\"so_test4\",\"description\":\"so_test2\",\"serviceDefId\":\"60c3e96e-0970-4871-b6e0-3b6de7561519\",\"templateId\":\"592f9437-a9c0-4303-b9f6-c445bb7e9814\",\"parameters\":{\"globalSubscriberId\":\"123457\",\"subscriberName\":\"Customer1\",\"serviceType\":\"voLTE\",\"templateName\":\"voLTE Service:1.0\",\"resources\":[{\"resourceName\":\"vIMS\",\"resourceDefId\":\"60c3e96e-0970-4871-b6e0-3b6de7561516\",\"resourceId\":\"60c3e96e-0970-4871-b6e0-3b6de7561512\",\"nsParameters\":{\"locationConstraints\":[{\"vnfProfileId\":\"zte-vBAS-1.0\",\"locationConstraints\":{\"vimId\":\"4050083f-465f-4838-af1e-47a545222ad0\"}},{\"vnfProfileId\":\"zte-vMME-1.0\",\"locationConstraints\":{\"vimId\":\"4050083f-465f-4838-af1e-47a545222ad0\"}}],\"additionalParamForNs\":{}}},{\"resourceName\":\"vEPC\",\"resourceDefId\":\"61c3e96e-0970-4871-b6e0-3b6de7561516\",\"resourceId\":\"62c3e96e-0970-4871-b6e0-3b6de7561512\",\"nsParameters\":{\"locationConstraints\":[{\"vnfProfileId\":\"zte-CSCF-1.0\",\"locationConstraints\":{\"vimId\":\"4050083f-465f-4838-af1e-47a545222ad1\"}}],\"additionalParamForNs\":{}}},{\"resourceName\":\"underlayvpn\",\"resourceDefId\":\"60c3e96e-0970-4871-b6e0-3b6de7561513\",\"resourceId\":\"60c3e96e-0970-4871-b6e0-3b6de7561514\",\"nsParameters\":{\"locationConstraints\":[],\"additionalParamForNs\":{\"externalDataNetworkName\":\"Flow_out_net\",\"m6000_mng_ip\":\"181.18.20.2\",\"externalCompanyFtpDataNetworkName\":\"Flow_out_net\",\"externalPluginManageNetworkName\":\"plugin_net_2014\",\"externalManageNetworkName\":\"mng_net_2017\",\"sfc_data_network\":\"sfc_data_net_2016\",\"NatIpRange\":\"210.1.1.10-210.1.1.20\",\"location\":\"4050083f-465f-4838-af1e-47a545222ad0\",\"sdncontroller\":\"9b9f02c0-298b-458a-bc9c-be3692e4f35e\"}}},{\"resourceName\":\"overlayvpn\",\"resourceDefId\":\"60c3e96e-0970-4871-b6e0-3b6de7561517\",\"resourceId\":\"60c3e96e-0970-4871-b6e0-3b6de7561518\",\"nsParameters\":{\"locationConstraints\":[],\"additionalParamForNs\":{\"externalDataNetworkName\":\"Flow_out_net\",\"m6000_mng_ip\":\"181.18.20.2\",\"externalCompanyFtpDataNetworkName\":\"Flow_out_net\",\"externalPluginManageNetworkName\":\"plugin_net_2014\",\"externalManageNetworkName\":\"mng_net_2017\",\"sfc_data_network\":\"sfc_data_net_2016\",\"NatIpRange\":\"210.1.1.10-210.1.1.20\",\"location\":\"4050083f-465f-4838-af1e-47a545222ad0\",\"sdncontroller\":\"9b9f02c0-298b-458a-bc9c-be3692e4f35e\"}}}]}}}";
\r
461 Response resp = instance.createE2EServiceInstance(request, "v3");
\r
462 String respStr = resp.getEntity().toString();
\r
463 assertTrue(respStr.contains("SVC2000"));
\r
467 public void createE2EServiceInstanceTestNullDBResponse() {
\r
469 new MockUp<RequestsDatabase>() {
\r
471 public OperationStatus getOperationStatusByServiceName(
\r
472 String serviceName) {
\r
473 OperationStatus operationStatus = new OperationStatus();
\r
474 return operationStatus;
\r
477 new MockUp<E2EServiceInstances>() {
\r
479 private void createOperationStatusRecordForError(Action action,
\r
480 String requestId) throws MsoDatabaseException {
\r
485 E2EServiceInstances instance = new E2EServiceInstances();
\r
486 String request = "{\"service\":{\"name\":\"so_test4\",\"description\":\"so_test2\",\"serviceDefId\":\"60c3e96e-0970-4871-b6e0-3b6de7561519\",\"templateId\":\"592f9437-a9c0-4303-b9f6-c445bb7e9814\",\"parameters\":{\"globalSubscriberId\":\"123457\",\"subscriberName\":\"Customer1\",\"serviceType\":\"voLTE\",\"templateName\":\"voLTE Service:1.0\",\"resources\":[{\"resourceName\":\"vIMS\",\"resourceDefId\":\"60c3e96e-0970-4871-b6e0-3b6de7561516\",\"resourceId\":\"60c3e96e-0970-4871-b6e0-3b6de7561512\",\"nsParameters\":{\"locationConstraints\":[{\"vnfProfileId\":\"zte-vBAS-1.0\",\"locationConstraints\":{\"vimId\":\"4050083f-465f-4838-af1e-47a545222ad0\"}},{\"vnfProfileId\":\"zte-vMME-1.0\",\"locationConstraints\":{\"vimId\":\"4050083f-465f-4838-af1e-47a545222ad0\"}}],\"additionalParamForNs\":{}}},{\"resourceName\":\"vEPC\",\"resourceDefId\":\"61c3e96e-0970-4871-b6e0-3b6de7561516\",\"resourceId\":\"62c3e96e-0970-4871-b6e0-3b6de7561512\",\"nsParameters\":{\"locationConstraints\":[{\"vnfProfileId\":\"zte-CSCF-1.0\",\"locationConstraints\":{\"vimId\":\"4050083f-465f-4838-af1e-47a545222ad1\"}}],\"additionalParamForNs\":{}}},{\"resourceName\":\"underlayvpn\",\"resourceDefId\":\"60c3e96e-0970-4871-b6e0-3b6de7561513\",\"resourceId\":\"60c3e96e-0970-4871-b6e0-3b6de7561514\",\"nsParameters\":{\"locationConstraints\":[],\"additionalParamForNs\":{\"externalDataNetworkName\":\"Flow_out_net\",\"m6000_mng_ip\":\"181.18.20.2\",\"externalCompanyFtpDataNetworkName\":\"Flow_out_net\",\"externalPluginManageNetworkName\":\"plugin_net_2014\",\"externalManageNetworkName\":\"mng_net_2017\",\"sfc_data_network\":\"sfc_data_net_2016\",\"NatIpRange\":\"210.1.1.10-210.1.1.20\",\"location\":\"4050083f-465f-4838-af1e-47a545222ad0\",\"sdncontroller\":\"9b9f02c0-298b-458a-bc9c-be3692e4f35e\"}}},{\"resourceName\":\"overlayvpn\",\"resourceDefId\":\"60c3e96e-0970-4871-b6e0-3b6de7561517\",\"resourceId\":\"60c3e96e-0970-4871-b6e0-3b6de7561518\",\"nsParameters\":{\"locationConstraints\":[],\"additionalParamForNs\":{\"externalDataNetworkName\":\"Flow_out_net\",\"m6000_mng_ip\":\"181.18.20.2\",\"externalCompanyFtpDataNetworkName\":\"Flow_out_net\",\"externalPluginManageNetworkName\":\"plugin_net_2014\",\"externalManageNetworkName\":\"mng_net_2017\",\"sfc_data_network\":\"sfc_data_net_2016\",\"NatIpRange\":\"210.1.1.10-210.1.1.20\",\"location\":\"4050083f-465f-4838-af1e-47a545222ad0\",\"sdncontroller\":\"9b9f02c0-298b-458a-bc9c-be3692e4f35e\"}}}]}}}";
\r
487 Response resp = instance.createE2EServiceInstance(request, "v3");
\r
488 String respStr = resp.getEntity().toString();
\r
489 assertTrue(respStr.contains("SVC2000"));
\r
493 public void createE2EServiceInstanceTestInvalidRequest() {
\r
494 new MockUp<RequestsDatabase>() {
\r
496 public OperationStatus getOperationStatusByServiceName(
\r
497 String serviceName) {
\r
498 OperationStatus operationStatus = new OperationStatus();
\r
499 return operationStatus;
\r
503 new MockUp<E2EServiceInstances>() {
\r
505 private void createOperationStatusRecordForError(Action action,
\r
506 String requestId) throws MsoDatabaseException {
\r
510 E2EServiceInstances instance = new E2EServiceInstances();
\r
511 String request = "{\"service\":{\"name\":\"so_test4\",\"description\":\"so_test2\",\"serviceDefId\":\"60c3e96e-0970-4871-b6e0-3b6de7561519\",\"templateId\":\"592f9437-a9c0-4303-b9f6-c445bb7e9814\",\"parameters\":{\"globalSubscriberId\":\"123457\",\"subscriberName\":\"Customer1\",\"serviceType\":\"voLTE\",\"templateName\":\"voLTE Service:1.0\",\"resources\":[{\"resourceName\":\"vIMS\",\"resourceDefId\":\"60c3e96e-0970-4871-b6e0-3b6de7561516\",\"resourceId\":\"60c3e96e-0970-4871-b6e0-3b6de7561512\",\"nsParameters\":{\"locationConstraints\":[{\"vnfProfileId\":\"zte-vBAS-1.0\",\"locationConstraints\":{\"vimId\":\"4050083f-465f-4838-af1e-47a545222ad0\"}},{\"vnfProfileId\":\"zte-vMME-1.0\",\"locationConstraints\":{\"vimId\":\"4050083f-465f-4838-af1e-47a545222ad0\"}}],\"additionalParamForNs\":{}}},{\"resourceName\":\"vEPC\",\"resourceDefId\":\"61c3e96e-0970-4871-b6e0-3b6de7561516\",\"resourceId\":\"62c3e96e-0970-4871-b6e0-3b6de7561512\",\"nsParameters\":{\"locationConstraints\":[{\"vnfProfileId\":\"zte-CSCF-1.0\",\"locationConstraints\":{\"vimId\":\"4050083f-465f-4838-af1e-47a545222ad1\"}}],\"additionalParamForNs\":{}}},{\"resourceName\":\"underlayvpn\",\"resourceDefId\":\"60c3e96e-0970-4871-b6e0-3b6de7561513\",\"resourceId\":\"60c3e96e-0970-4871-b6e0-3b6de7561514\",\"nsParameters\":{\"locationConstraints\":[],\"additionalParamForNs\":{\"externalDataNetworkName\":\"Flow_out_net\",\"m6000_mng_ip\":\"181.18.20.2\",\"externalCompanyFtpDataNetworkName\":\"Flow_out_net\",\"externalPluginManageNetworkName\":\"plugin_net_2014\",\"externalManageNetworkName\":\"mng_net_2017\",\"sfc_data_network\":\"sfc_data_net_2016\",\"NatIpRange\":\"210.1.1.10-210.1.1.20\",\"location\":\"4050083f-465f-4838-af1e-47a545222ad0\",\"sdncontroller\":\"9b9f02c0-298b-458a-bc9c-be3692e4f35e\"}}},{\"resourceName\":\"overlayvpn\",\"resourceDefId\":\"60c3e96e-0970-4871-b6e0-3b6de7561517\",\"resourceId\":\"60c3e96e-0970-4871-b6e0-3b6de7561518\",\"nsParameters\":{\"locationConstraints\":[],\"additionalParamForNs\":{\"externalDataNetworkName\":\"Flow_out_net\",\"m6000_mng_ip\":\"181.18.20.2\",\"externalCompanyFtpDataNetworkName\":\"Flow_out_net\",\"externalPluginManageNetworkName\":\"plugin_net_2014\",\"externalManageNetworkName\":\"mng_net_2017\",\"sfc_data_network\":\"sfc_data_net_2016\",\"NatIpRange\":\"210.1.1.10-210.1.1.20\",\"location\":\"4050083f-465f-4838-af1e-47a545222ad0\",\"sdncontroller\":\"9b9f02c0-298b-458a-bc9c-be3692e4f35e\"}}}]}}}";
\r
512 Response resp = instance.createE2EServiceInstance(request, "v3");
\r
513 String respStr = resp.getEntity().toString();
\r
514 assertTrue(respStr.contains("SVC2000"));
\r
518 public void createE2EServiceInstanceTestEmptyDBQuery() {
\r
519 new MockUp<E2EServiceInstances>() {
\r
521 private void createOperationStatusRecordForError(Action action,
\r
522 String requestId) throws MsoDatabaseException {
\r
527 E2EServiceInstances instance = new E2EServiceInstances();
\r
528 String request = "{\"service\":{\"name\":\"so_test4\",\"description\":\"so_test2\",\"serviceDefId\":\"60c3e96e-0970-4871-b6e0-3b6de7561519\",\"templateId\":\"592f9437-a9c0-4303-b9f6-c445bb7e9814\",\"parameters\":{\"globalSubscriberId\":\"123457\",\"subscriberName\":\"Customer1\",\"serviceType\":\"voLTE\",\"templateName\":\"voLTE Service:1.0\",\"resources\":[{\"resourceName\":\"vIMS\",\"resourceDefId\":\"60c3e96e-0970-4871-b6e0-3b6de7561516\",\"resourceId\":\"60c3e96e-0970-4871-b6e0-3b6de7561512\",\"nsParameters\":{\"locationConstraints\":[{\"vnfProfileId\":\"zte-vBAS-1.0\",\"locationConstraints\":{\"vimId\":\"4050083f-465f-4838-af1e-47a545222ad0\"}},{\"vnfProfileId\":\"zte-vMME-1.0\",\"locationConstraints\":{\"vimId\":\"4050083f-465f-4838-af1e-47a545222ad0\"}}],\"additionalParamForNs\":{}}},{\"resourceName\":\"vEPC\",\"resourceDefId\":\"61c3e96e-0970-4871-b6e0-3b6de7561516\",\"resourceId\":\"62c3e96e-0970-4871-b6e0-3b6de7561512\",\"nsParameters\":{\"locationConstraints\":[{\"vnfProfileId\":\"zte-CSCF-1.0\",\"locationConstraints\":{\"vimId\":\"4050083f-465f-4838-af1e-47a545222ad1\"}}],\"additionalParamForNs\":{}}},{\"resourceName\":\"underlayvpn\",\"resourceDefId\":\"60c3e96e-0970-4871-b6e0-3b6de7561513\",\"resourceId\":\"60c3e96e-0970-4871-b6e0-3b6de7561514\",\"nsParameters\":{\"locationConstraints\":[],\"additionalParamForNs\":{\"externalDataNetworkName\":\"Flow_out_net\",\"m6000_mng_ip\":\"181.18.20.2\",\"externalCompanyFtpDataNetworkName\":\"Flow_out_net\",\"externalPluginManageNetworkName\":\"plugin_net_2014\",\"externalManageNetworkName\":\"mng_net_2017\",\"sfc_data_network\":\"sfc_data_net_2016\",\"NatIpRange\":\"210.1.1.10-210.1.1.20\",\"location\":\"4050083f-465f-4838-af1e-47a545222ad0\",\"sdncontroller\":\"9b9f02c0-298b-458a-bc9c-be3692e4f35e\"}}},{\"resourceName\":\"overlayvpn\",\"resourceDefId\":\"60c3e96e-0970-4871-b6e0-3b6de7561517\",\"resourceId\":\"60c3e96e-0970-4871-b6e0-3b6de7561518\",\"nsParameters\":{\"locationConstraints\":[],\"additionalParamForNs\":{\"externalDataNetworkName\":\"Flow_out_net\",\"m6000_mng_ip\":\"181.18.20.2\",\"externalCompanyFtpDataNetworkName\":\"Flow_out_net\",\"externalPluginManageNetworkName\":\"plugin_net_2014\",\"externalManageNetworkName\":\"mng_net_2017\",\"sfc_data_network\":\"sfc_data_net_2016\",\"NatIpRange\":\"210.1.1.10-210.1.1.20\",\"location\":\"4050083f-465f-4838-af1e-47a545222ad0\",\"sdncontroller\":\"9b9f02c0-298b-458a-bc9c-be3692e4f35e\"}}}]}}}";
\r
529 Response resp = instance.createE2EServiceInstance(request, "v3");
\r
530 String respStr = resp.getEntity().toString();
\r
531 assertTrue(respStr.contains("SVC2000"));
\r
532 // assertTrue(true);
\r
536 public void createE2EServiceInstanceTestDBQueryFail() {
\r
537 new MockUp<RequestsDatabase>() {
\r
539 public OperationStatus getOperationStatusByServiceName(
\r
540 String serviceName) {
\r
541 OperationStatus operationStatus = new OperationStatus();
\r
542 return operationStatus;
\r
546 new MockUp<E2EServiceInstances>() {
\r
548 private void createOperationStatusRecordForError(Action action,
\r
549 String requestId) throws MsoDatabaseException {
\r
553 E2EServiceInstances instance = new E2EServiceInstances();
\r
554 String request = "{\"service\":{\"name\":\"so_test4\",\"description\":\"so_test2\",\"serviceDefId\":\"60c3e96e-0970-4871-b6e0-3b6de7561519\",\"templateId\":\"592f9437-a9c0-4303-b9f6-c445bb7e9814\",\"parameters\":{\"globalSubscriberId\":\"123457\",\"subscriberName\":\"Customer1\",\"serviceType\":\"voLTE\",\"templateName\":\"voLTE Service:1.0\",\"resources\":[{\"resourceName\":\"vIMS\",\"resourceDefId\":\"60c3e96e-0970-4871-b6e0-3b6de7561516\",\"resourceId\":\"60c3e96e-0970-4871-b6e0-3b6de7561512\",\"nsParameters\":{\"locationConstraints\":[{\"vnfProfileId\":\"zte-vBAS-1.0\",\"locationConstraints\":{\"vimId\":\"4050083f-465f-4838-af1e-47a545222ad0\"}},{\"vnfProfileId\":\"zte-vMME-1.0\",\"locationConstraints\":{\"vimId\":\"4050083f-465f-4838-af1e-47a545222ad0\"}}],\"additionalParamForNs\":{}}},{\"resourceName\":\"vEPC\",\"resourceDefId\":\"61c3e96e-0970-4871-b6e0-3b6de7561516\",\"resourceId\":\"62c3e96e-0970-4871-b6e0-3b6de7561512\",\"nsParameters\":{\"locationConstraints\":[{\"vnfProfileId\":\"zte-CSCF-1.0\",\"locationConstraints\":{\"vimId\":\"4050083f-465f-4838-af1e-47a545222ad1\"}}],\"additionalParamForNs\":{}}},{\"resourceName\":\"underlayvpn\",\"resourceDefId\":\"60c3e96e-0970-4871-b6e0-3b6de7561513\",\"resourceId\":\"60c3e96e-0970-4871-b6e0-3b6de7561514\",\"nsParameters\":{\"locationConstraints\":[],\"additionalParamForNs\":{\"externalDataNetworkName\":\"Flow_out_net\",\"m6000_mng_ip\":\"181.18.20.2\",\"externalCompanyFtpDataNetworkName\":\"Flow_out_net\",\"externalPluginManageNetworkName\":\"plugin_net_2014\",\"externalManageNetworkName\":\"mng_net_2017\",\"sfc_data_network\":\"sfc_data_net_2016\",\"NatIpRange\":\"210.1.1.10-210.1.1.20\",\"location\":\"4050083f-465f-4838-af1e-47a545222ad0\",\"sdncontroller\":\"9b9f02c0-298b-458a-bc9c-be3692e4f35e\"}}},{\"resourceName\":\"overlayvpn\",\"resourceDefId\":\"60c3e96e-0970-4871-b6e0-3b6de7561517\",\"resourceId\":\"60c3e96e-0970-4871-b6e0-3b6de7561518\",\"nsParameters\":{\"locationConstraints\":[],\"additionalParamForNs\":{\"externalDataNetworkName\":\"Flow_out_net\",\"m6000_mng_ip\":\"181.18.20.2\",\"externalCompanyFtpDataNetworkName\":\"Flow_out_net\",\"externalPluginManageNetworkName\":\"plugin_net_2014\",\"externalManageNetworkName\":\"mng_net_2017\",\"sfc_data_network\":\"sfc_data_net_2016\",\"NatIpRange\":\"210.1.1.10-210.1.1.20\",\"location\":\"4050083f-465f-4838-af1e-47a545222ad0\",\"sdncontroller\":\"9b9f02c0-298b-458a-bc9c-be3692e4f35e\"}}}]}}}";
\r
555 Response resp = instance.createE2EServiceInstance(request, "v3");
\r
556 String respStr = resp.getEntity().toString();
\r
557 assertTrue(respStr.contains("SVC2000"));
\r
561 public void createE2EServiceInstanceTestForEmptyRequest() {
\r
563 new MockUp<E2EServiceInstances>() {
\r
565 private void createOperationStatusRecordForError(Action action,
\r
566 String requestId) throws MsoDatabaseException {
\r
570 E2EServiceInstances instance = new E2EServiceInstances();
\r
571 String request = "";
\r
572 Response resp = instance.createE2EServiceInstance(request, "v3");
\r
573 String respStr = resp.getEntity().toString();
\r
575 .contains("Mapping of request to JSON object failed. No content to map to Object due to end of input"));
\r
578 @Ignore // 1802 merge
\r
580 public void deleteE2EServiceInstanceTestNormal() {
\r
581 E2EServiceInstances instance = new E2EServiceInstances();
\r
582 String request = "{\"globalSubscriberId\":\"299392392\",\"serviceType\":\"VoLTE\"}";
\r
583 Response resp = instance.deleteE2EServiceInstance(request, "v3",
\r
585 String respStr = resp.getEntity().toString();
\r
586 assertTrue(respStr.contains("SVC1000"));
\r
590 public void getE2EServiceInstanceTest() {
\r
592 new MockUp<RequestsDatabase>() {
\r
594 public OperationStatus getOperationStatus(String serviceId,
\r
595 String operationId) {
\r
596 OperationStatus os = new OperationStatus();
\r
597 os.setOperation("");
\r
598 os.setOperationContent("");
\r
599 os.setOperationId("123456");
\r
600 os.setProgress("");
\r
601 os.setServiceId("12345");
\r
602 os.setServiceName("VoLTE");
\r
610 E2EServiceInstances instance = new E2EServiceInstances();
\r
611 Response resp = instance
\r
612 .getE2EServiceInstances("12345", "v3", "123456");
\r
617 public void updateE2EServiceInstanceTestNormal() {
\r
618 new MockUp<RequestsDatabase>() {
\r
620 public OperationStatus getOperationStatusByServiceId(
\r
621 String serviceID) {
\r
622 OperationStatus operationStatus = new OperationStatus();
\r
623 operationStatus.setProgress("100");
\r
624 return operationStatus;
\r
627 new MockUp<E2EServiceInstances>() {
\r
629 private void createOperationStatusRecordForError(Action action,
\r
630 String requestId) throws MsoDatabaseException {
\r
634 new MockUp<CatalogDatabase>() {
\r
636 public Service getServiceByModelName(String modelName) {
\r
637 Service svc = new Service();
\r
642 new MockUp<CatalogDatabase>() {
\r
644 public ServiceRecipe getServiceRecipeByModelUUID(String modelUUID,
\r
646 ServiceRecipe rec = new ServiceRecipe();
\r
651 new MockUp<RequestClientFactory>() {
\r
653 public RequestClient getRequestClient(String orchestrationURI,
\r
654 MsoJavaProperties props) throws IllegalStateException {
\r
655 RequestClient client = new CamundaClient();
\r
656 client.setUrl("/test/url");
\r
661 new MockUp<CamundaClient>() {
\r
663 public HttpResponse post(String requestId, boolean isBaseVfModule,
\r
664 int recipeTimeout, String requestAction,
\r
665 String serviceInstanceId, String vnfId, String vfModuleId,
\r
666 String volumeGroupId, String networkId, String configurationId, String serviceType,
\r
667 String vnfType, String vfModuleType, String networkType,
\r
668 String requestDetails, String recipeParamXsd) {
\r
669 ProtocolVersion pv = new ProtocolVersion("HTTP", 1, 1);
\r
670 HttpResponse resp = new BasicHttpResponse(pv, 202,
\r
672 BasicHttpEntity entity = new BasicHttpEntity();
\r
673 String body = "{\"response\":\"success\",\"message\":\"success\"}";
\r
674 InputStream instream = new ByteArrayInputStream(body.getBytes());
\r
675 entity.setContent(instream);
\r
676 resp.setEntity(entity);
\r
681 E2EServiceInstances instance = new E2EServiceInstances();
\r
682 String request = "{\"service\":{\"name\":\"so_test4\",\"description\":\"so_test2\",\"serviceDefId\":\"60c3e96e-0970-4871-b6e0-3b6de7561519\",\"templateId\":\"592f9437-a9c0-4303-b9f6-c445bb7e9814\",\"parameters\":{\"globalSubscriberId\":\"123457\",\"subscriberName\":\"Customer1\",\"serviceType\":\"voLTE\",\"templateName\":\"voLTE Service:1.0\",\"resources\":[{\"resourceName\":\"vIMS\",\"resourceDefId\":\"60c3e96e-0970-4871-b6e0-3b6de7561516\",\"resourceId\":\"60c3e96e-0970-4871-b6e0-3b6de7561512\",\"nsParameters\":{\"locationConstraints\":[{\"vnfProfileId\":\"zte-vBAS-1.0\",\"locationConstraints\":{\"vimId\":\"4050083f-465f-4838-af1e-47a545222ad0\"}},{\"vnfProfileId\":\"zte-vMME-1.0\",\"locationConstraints\":{\"vimId\":\"4050083f-465f-4838-af1e-47a545222ad0\"}}],\"additionalParamForNs\":{}}},{\"resourceName\":\"vEPC\",\"resourceDefId\":\"61c3e96e-0970-4871-b6e0-3b6de7561516\",\"resourceId\":\"62c3e96e-0970-4871-b6e0-3b6de7561512\",\"nsParameters\":{\"locationConstraints\":[{\"vnfProfileId\":\"zte-CSCF-1.0\",\"locationConstraints\":{\"vimId\":\"4050083f-465f-4838-af1e-47a545222ad1\"}}],\"additionalParamForNs\":{}}},{\"resourceName\":\"underlayvpn\",\"resourceDefId\":\"60c3e96e-0970-4871-b6e0-3b6de7561513\",\"resourceId\":\"60c3e96e-0970-4871-b6e0-3b6de7561514\",\"nsParameters\":{\"locationConstraints\":[],\"additionalParamForNs\":{\"externalDataNetworkName\":\"Flow_out_net\",\"m6000_mng_ip\":\"181.18.20.2\",\"externalCompanyFtpDataNetworkName\":\"Flow_out_net\",\"externalPluginManageNetworkName\":\"plugin_net_2014\",\"externalManageNetworkName\":\"mng_net_2017\",\"sfc_data_network\":\"sfc_data_net_2016\",\"NatIpRange\":\"210.1.1.10-210.1.1.20\",\"location\":\"4050083f-465f-4838-af1e-47a545222ad0\",\"sdncontroller\":\"9b9f02c0-298b-458a-bc9c-be3692e4f35e\"}}},{\"resourceName\":\"overlayvpn\",\"resourceDefId\":\"60c3e96e-0970-4871-b6e0-3b6de7561517\",\"resourceId\":\"60c3e96e-0970-4871-b6e0-3b6de7561518\",\"nsParameters\":{\"locationConstraints\":[],\"additionalParamForNs\":{\"externalDataNetworkName\":\"Flow_out_net\",\"m6000_mng_ip\":\"181.18.20.2\",\"externalCompanyFtpDataNetworkName\":\"Flow_out_net\",\"externalPluginManageNetworkName\":\"plugin_net_2014\",\"externalManageNetworkName\":\"mng_net_2017\",\"sfc_data_network\":\"sfc_data_net_2016\",\"NatIpRange\":\"210.1.1.10-210.1.1.20\",\"location\":\"4050083f-465f-4838-af1e-47a545222ad0\",\"sdncontroller\":\"9b9f02c0-298b-458a-bc9c-be3692e4f35e\"}}}]}}}";
\r
683 Response resp = instance.updateE2EServiceInstance(request, "v3", "12345");
\r
684 String respStr = resp.getEntity().toString();
\r
685 assertTrue(respStr.contains("success"));
\r
689 public void updateE2EServiceInstanceTestChkStatusFalse() {
\r
690 new MockUp<RequestsDatabase>() {
\r
692 public OperationStatus getOperationStatusByServiceId(
\r
693 String serviceID) {
\r
694 OperationStatus operationStatus = new OperationStatus();
\r
695 return operationStatus;
\r
698 new MockUp<E2EServiceInstances>() {
\r
700 private void createOperationStatusRecordForError(Action action,
\r
701 String requestId) throws MsoDatabaseException {
\r
705 new MockUp<CatalogDatabase>() {
\r
707 public Service getServiceByModelName(String modelName) {
\r
708 Service svc = new Service();
\r
713 new MockUp<CatalogDatabase>() {
\r
715 public ServiceRecipe getServiceRecipeByModelUUID(String modelUUID,
\r
717 ServiceRecipe rec = new ServiceRecipe();
\r
722 new MockUp<RequestClientFactory>() {
\r
724 public RequestClient getRequestClient(String orchestrationURI,
\r
725 MsoJavaProperties props) throws IllegalStateException {
\r
726 RequestClient client = new CamundaClient();
\r
727 client.setUrl("/test/url");
\r
732 new MockUp<CamundaClient>() {
\r
734 public HttpResponse post(String requestId, boolean isBaseVfModule,
\r
735 int recipeTimeout, String requestAction,
\r
736 String serviceInstanceId, String vnfId, String vfModuleId,
\r
737 String volumeGroupId, String networkId, String configurationId, String serviceType,
\r
738 String vnfType, String vfModuleType, String networkType,
\r
739 String requestDetails, String recipeParamXsd) {
\r
740 ProtocolVersion pv = new ProtocolVersion("HTTP", 1, 1);
\r
741 HttpResponse resp = new BasicHttpResponse(pv, 202,
\r
743 BasicHttpEntity entity = new BasicHttpEntity();
\r
744 String body = "{\"response\":\"success\",\"message\":\"success\"}";
\r
745 InputStream instream = new ByteArrayInputStream(body.getBytes());
\r
746 entity.setContent(instream);
\r
747 resp.setEntity(entity);
\r
752 E2EServiceInstances instance = new E2EServiceInstances();
\r
753 String request = "{\"service\":{\"name\":\"so_test4\",\"description\":\"so_test2\",\"serviceDefId\":\"60c3e96e-0970-4871-b6e0-3b6de7561519\",\"templateId\":\"592f9437-a9c0-4303-b9f6-c445bb7e9814\",\"parameters\":{\"globalSubscriberId\":\"123457\",\"subscriberName\":\"Customer1\",\"serviceType\":\"voLTE\",\"templateName\":\"voLTE Service:1.0\",\"resources\":[{\"resourceName\":\"vIMS\",\"resourceDefId\":\"60c3e96e-0970-4871-b6e0-3b6de7561516\",\"resourceId\":\"60c3e96e-0970-4871-b6e0-3b6de7561512\",\"nsParameters\":{\"locationConstraints\":[{\"vnfProfileId\":\"zte-vBAS-1.0\",\"locationConstraints\":{\"vimId\":\"4050083f-465f-4838-af1e-47a545222ad0\"}},{\"vnfProfileId\":\"zte-vMME-1.0\",\"locationConstraints\":{\"vimId\":\"4050083f-465f-4838-af1e-47a545222ad0\"}}],\"additionalParamForNs\":{}}},{\"resourceName\":\"vEPC\",\"resourceDefId\":\"61c3e96e-0970-4871-b6e0-3b6de7561516\",\"resourceId\":\"62c3e96e-0970-4871-b6e0-3b6de7561512\",\"nsParameters\":{\"locationConstraints\":[{\"vnfProfileId\":\"zte-CSCF-1.0\",\"locationConstraints\":{\"vimId\":\"4050083f-465f-4838-af1e-47a545222ad1\"}}],\"additionalParamForNs\":{}}},{\"resourceName\":\"underlayvpn\",\"resourceDefId\":\"60c3e96e-0970-4871-b6e0-3b6de7561513\",\"resourceId\":\"60c3e96e-0970-4871-b6e0-3b6de7561514\",\"nsParameters\":{\"locationConstraints\":[],\"additionalParamForNs\":{\"externalDataNetworkName\":\"Flow_out_net\",\"m6000_mng_ip\":\"181.18.20.2\",\"externalCompanyFtpDataNetworkName\":\"Flow_out_net\",\"externalPluginManageNetworkName\":\"plugin_net_2014\",\"externalManageNetworkName\":\"mng_net_2017\",\"sfc_data_network\":\"sfc_data_net_2016\",\"NatIpRange\":\"210.1.1.10-210.1.1.20\",\"location\":\"4050083f-465f-4838-af1e-47a545222ad0\",\"sdncontroller\":\"9b9f02c0-298b-458a-bc9c-be3692e4f35e\"}}},{\"resourceName\":\"overlayvpn\",\"resourceDefId\":\"60c3e96e-0970-4871-b6e0-3b6de7561517\",\"resourceId\":\"60c3e96e-0970-4871-b6e0-3b6de7561518\",\"nsParameters\":{\"locationConstraints\":[],\"additionalParamForNs\":{\"externalDataNetworkName\":\"Flow_out_net\",\"m6000_mng_ip\":\"181.18.20.2\",\"externalCompanyFtpDataNetworkName\":\"Flow_out_net\",\"externalPluginManageNetworkName\":\"plugin_net_2014\",\"externalManageNetworkName\":\"mng_net_2017\",\"sfc_data_network\":\"sfc_data_net_2016\",\"NatIpRange\":\"210.1.1.10-210.1.1.20\",\"location\":\"4050083f-465f-4838-af1e-47a545222ad0\",\"sdncontroller\":\"9b9f02c0-298b-458a-bc9c-be3692e4f35e\"}}}]}}}";
\r
754 Response resp = instance.updateE2EServiceInstance(request, "v3", "12345");
\r
755 String respStr = resp.getEntity().toString();
\r
756 assertTrue(respStr.contains("SVC2000"));
\r