2 * ============LICENSE_START=======================================================
4 * ================================================================================
5 * Copyright (C) 2017 Huawei Technologies Co., Ltd. All rights reserved.
6 * ================================================================================
7 * Licensed under the Apache License, Version 2.0 (the "License");
8 * you may not use this file except in compliance with the License.
9 * You may obtain a copy of the License at
11 * http://www.apache.org/licenses/LICENSE-2.0
13 * Unless required by applicable law or agreed to in writing, software
14 * distributed under the License is distributed on an "AS IS" BASIS,
15 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 * See the License for the specific language governing permissions and
17 * limitations under the License.
18 * ============LICENSE_END=========================================================
21 package org.openecomp.mso.apihandlerinfra;
23 import static org.junit.Assert.*;
25 import java.io.ByteArrayInputStream;
26 import java.io.IOException;
27 import java.io.InputStream;
28 import java.util.HashMap;
30 import javax.ws.rs.core.Response;
32 import org.apache.http.HttpResponse;
33 import org.apache.http.ProtocolVersion;
34 import org.apache.http.client.ClientProtocolException;
35 import org.apache.http.entity.BasicHttpEntity;
36 import org.apache.http.message.BasicHttpResponse;
37 import org.hibernate.Session;
38 import org.junit.BeforeClass;
39 import org.junit.Test;
40 import org.openecomp.mso.apihandler.common.CamundaClient;
41 import org.openecomp.mso.apihandler.common.RequestClient;
42 import org.openecomp.mso.apihandler.common.RequestClientFactory;
43 import org.openecomp.mso.apihandler.common.ValidationException;
44 import org.openecomp.mso.db.AbstractSessionFactoryManager;
45 import org.openecomp.mso.db.catalog.CatalogDatabase;
46 import org.openecomp.mso.db.catalog.beans.Service;
47 import org.openecomp.mso.db.catalog.beans.ServiceRecipe;
48 import org.openecomp.mso.properties.MsoDatabaseException;
49 import org.openecomp.mso.properties.MsoJavaProperties;
50 import org.openecomp.mso.properties.MsoPropertiesFactory;
51 import org.openecomp.mso.requestsdb.OperationStatus;
52 import org.openecomp.mso.requestsdb.RequestsDatabase;
53 import org.openecomp.mso.serviceinstancebeans.ServiceInstancesRequest;
55 import mockit.Expectations;
60 public class E2EServiceInstancesTest {
62 private final String compareModelsRequest = "{" +
63 "\"globalSubscriberId\": \"60c3e96e-0970-4871-b6e0-3b6de7561519\"," +
64 "\"serviceType\": \"vnf\"," +
65 "\"modelInvariantIdTarget\": \"60c3e96e-0970-4871-b6e0-3b6de1234567\"," +
66 "\"modelVersionIdTarget\": \"modelVersionIdTarget\"" +
69 private final String scaleRequest = "{\"service\":{\"serviceType\":\"example-service-type\",\"globalSubscriberId\":\"test_custormer\",\"resources\":[{\"resourceInstanceId\":\"ns111\",\"scaleType\":\"SCALE_NS\",\"scaleNsData\":{\"scaleNsByStepsData\":{\"numberOfSteps\":\"4\",\"aspectId\":\"TIC_EDGE_HW\",\"scalingDirection\":\"UP\"}}}],\"serviceInstanceName\":\"XXXX\"}}";
71 String jsonBody = "{" +
73 "\"name\": \"so_test4\"," +
74 "\"description\": \"so_test2\"," +
75 "\"serviceInvariantUuid\": \"60c3e96e-0970-4871-b6e0-3b6de7561519\"," +
76 "\"serviceUuid\": \"592f9437-a9c0-4303-b9f6-c445bb7e9814\"," +
77 "\"globalSubscriberId\": \"123457\"," +
78 "\"serviceType\": \"voLTE\"," +
82 "\"resourceName\": \"vIMS\"," +
83 "\"resourceInvariantUuid\": \"60c3e96e-0970-4871-b6e0-3b6de7561516\"," +
84 "\"resourceUuid\": \"60c3e96e-0970-4871-b6e0-3b6de7561512\"," +
86 "\"locationConstraints\": [" +
88 "\"vnfProfileId\": \"zte-vBAS-1.0\"," +
89 "\"locationConstraints\": {" +
90 "\"vimId\": \"4050083f-465f-4838-af1e-47a545222ad0\"" +
94 "\"vnfProfileId\": \"zte-vMME-1.0\"," +
95 "\"locationConstraints\": {" +
96 "\"vimId\": \"4050083f-465f-4838-af1e-47a545222ad0\"" +
103 "\"resourceName\": \"vEPC\"," +
104 "\"resourceInvariantUuid\": \"61c3e96e-0970-4871-b6e0-3b6de7561516\"," +
105 "\"resourceUuid\": \"62c3e96e-0970-4871-b6e0-3b6de7561512\"," +
106 "\"parameters\": {" +
107 "\"locationConstraints\": [" +
109 "\"vnfProfileId\": \"zte-CSCF-1.0\"," +
110 "\"locationConstraints\": {" +
111 "\"vimId\": \"4050083f-465f-4838-af1e-47a545222ad1\"" +
118 "\"resourceName\": \"underlayvpn\"," +
119 "\"resourceInvariantUuid\": \"60c3e96e-0970-4871-b6e0-3b6de7561513\"," +
120 "\"resourceUuid\": \"60c3e96e-0970-4871-b6e0-3b6de7561514\"," +
121 "\"parameters\": {" +
122 "\"locationConstraints\": []" +
126 "\"resourceName\": \"overlayvpn\"," +
127 "\"resourceInvariantUuid\": \"60c3e96e-0970-4871-b6e0-3b6de7561517\"," +
128 "\"resourceUuid\": \"60c3e96e-0970-4871-b6e0-3b6de7561518\"," +
129 "\"parameters\": {" +
130 "\"locationConstraints\": []" +
134 "\"requestInputs\": {" +
135 "\"externalDataNetworkName\": \"Flow_out_net\"," +
136 "\"m6000_mng_ip\": \"181.18.20.2\"," +
137 "\"externalCompanyFtpDataNetworkName\": \"Flow_out_net\"," +
138 "\"externalPluginManageNetworkName\": \"plugin_net_2014\"," +
139 "\"externalManageNetworkName\": \"mng_net_2017\"," +
140 "\"sfc_data_network\": \"sfc_data_net_2016\"," +
141 "\"NatIpRange\": \"210.1.1.10-210.1.1.20\"," +
142 "\"location\": \"4050083f-465f-4838-af1e-47a545222ad0\"," +
143 "\"sdncontroller\": \"9b9f02c0-298b-458a-bc9c-be3692e4f35e\"" +
150 public static void setUp() throws Exception {
152 MsoPropertiesFactory msoPropertiesFactory = new MsoPropertiesFactory();
153 msoPropertiesFactory.removeAllMsoProperties();
154 msoPropertiesFactory.initializeMsoProperties(Constants.MSO_PROP_APIHANDLER_INFRA, "src/test/resources/mso.apihandler-infra.properties");
158 public void createE2EServiceInstanceTestSuccess() {
159 new MockUp<RequestsDatabase>() {
161 public OperationStatus getOperationStatusByServiceName(
162 String serviceName) {
163 OperationStatus operationStatus = new OperationStatus();
164 return operationStatus;
167 new MockUp<E2EServiceInstances>() {
169 private void createOperationStatusRecordForError(Action action,
170 String requestId) throws MsoDatabaseException {
174 new MockUp<CatalogDatabase>() {
176 public Service getServiceByModelName(String modelName) {
177 Service svc = new Service();
182 new MockUp<CatalogDatabase>() {
184 public ServiceRecipe getServiceRecipeByModelUUID(String modelUUID,
186 ServiceRecipe rec = new ServiceRecipe();
191 new MockUp<RequestClientFactory>() {
193 public RequestClient getRequestClient(String orchestrationURI,
194 MsoJavaProperties props) throws IllegalStateException {
195 RequestClient client = new CamundaClient();
196 client.setUrl("/test/url");
201 new MockUp<CamundaClient>() {
203 public HttpResponse post(String requestId, boolean isBaseVfModule,
204 int recipeTimeout, String requestAction,
205 String serviceInstanceId, String vnfId, String vfModuleId,
206 String volumeGroupId, String networkId, String configurationId, String serviceType,
207 String vnfType, String vfModuleType, String networkType,
208 String requestDetails, String recipeParamXsd) {
209 ProtocolVersion pv = new ProtocolVersion("HTTP", 1, 1);
210 HttpResponse resp = new BasicHttpResponse(pv, 202,
212 BasicHttpEntity entity = new BasicHttpEntity();
213 String body = "{\"response\":\"success\",\"message\":\"success\"}";
214 InputStream instream = new ByteArrayInputStream(body.getBytes());
215 entity.setContent(instream);
216 resp.setEntity(entity);
221 E2EServiceInstances instance = new E2EServiceInstances();
222 String request = jsonBody;
223 Response resp = instance.createE2EServiceInstance(request, "v3");
224 String respStr = resp.getEntity().toString();
225 assertTrue(respStr.contains("SVC2000"));
229 public void createE2EServiceInstanceTestBpelHTTPException() {
230 new MockUp<RequestsDatabase>() {
232 public OperationStatus getOperationStatusByServiceName(
233 String serviceName) {
234 OperationStatus operationStatus = new OperationStatus();
235 return operationStatus;
238 new MockUp<E2EServiceInstances>() {
240 private void createOperationStatusRecordForError(Action action,
241 String requestId) throws MsoDatabaseException {
245 new MockUp<CatalogDatabase>() {
247 public Service getServiceByModelName(String modelName) {
248 Service svc = new Service();
253 new MockUp<CatalogDatabase>() {
255 public ServiceRecipe getServiceRecipeByModelUUID(String modelUUID,
257 ServiceRecipe rec = new ServiceRecipe();
262 new MockUp<RequestClientFactory>() {
264 public RequestClient getRequestClient(String orchestrationURI,
265 MsoJavaProperties props) throws IllegalStateException {
266 RequestClient client = new CamundaClient();
267 client.setUrl("/test/url");
272 new MockUp<CamundaClient>() {
274 public HttpResponse post(String requestId, boolean isBaseVfModule,
275 int recipeTimeout, String requestAction,
276 String serviceInstanceId, String vnfId, String vfModuleId,
277 String volumeGroupId, String networkId, String configurationId, String serviceType,
278 String vnfType, String vfModuleType, String networkType,
279 String requestDetails, String recipeParamXsd) {
280 ProtocolVersion pv = new ProtocolVersion("HTTP", 1, 1);
281 HttpResponse resp = new BasicHttpResponse(pv, 500,
283 BasicHttpEntity entity = new BasicHttpEntity();
284 String body = "{\"response\":\"success\",\"message\":\"success\"}";
285 InputStream instream = new ByteArrayInputStream(body.getBytes());
286 entity.setContent(instream);
287 resp.setEntity(entity);
292 E2EServiceInstances instance = new E2EServiceInstances();
293 String request = jsonBody;
294 Response resp = instance.createE2EServiceInstance(request, "v3");
295 String respStr = resp.getEntity().toString();
296 assertTrue(respStr.contains("SVC2000"));
300 public void createE2EServiceInstanceTestBpelHTTPExceptionWithNullREsponseBody() {
301 new MockUp<RequestsDatabase>() {
303 public OperationStatus getOperationStatusByServiceName(
304 String serviceName) {
305 OperationStatus operationStatus = new OperationStatus();
306 return operationStatus;
309 new MockUp<E2EServiceInstances>() {
311 private void createOperationStatusRecordForError(Action action,
312 String requestId) throws MsoDatabaseException {
316 new MockUp<CatalogDatabase>() {
318 public Service getServiceByModelName(String modelName) {
319 Service svc = new Service();
324 new MockUp<CatalogDatabase>() {
326 public ServiceRecipe getServiceRecipeByModelUUID(String modelUUID,
328 ServiceRecipe rec = new ServiceRecipe();
333 new MockUp<RequestClientFactory>() {
335 public RequestClient getRequestClient(String orchestrationURI,
336 MsoJavaProperties props) throws IllegalStateException {
337 RequestClient client = new CamundaClient();
338 client.setUrl("/test/url");
343 new MockUp<CamundaClient>() {
345 public HttpResponse post(String requestId, boolean isBaseVfModule,
346 int recipeTimeout, String requestAction,
347 String serviceInstanceId, String vnfId, String vfModuleId,
348 String volumeGroupId, String networkId, String configurationId, String serviceType,
349 String vnfType, String vfModuleType, String networkType,
350 String requestDetails, String recipeParamXsd) {
351 ProtocolVersion pv = new ProtocolVersion("HTTP", 1, 1);
352 HttpResponse resp = new BasicHttpResponse(pv, 500,
354 BasicHttpEntity entity = new BasicHttpEntity();
355 String body = "{\"response\":\"\",\"message\":\"success\"}";
356 InputStream instream = new ByteArrayInputStream(body.getBytes());
357 entity.setContent(instream);
358 resp.setEntity(entity);
363 E2EServiceInstances instance = new E2EServiceInstances();
364 String request = jsonBody;
365 Response resp = instance.createE2EServiceInstance(request, "v3");
366 String respStr = resp.getEntity().toString();
367 assertTrue(respStr.contains("SVC2000"));
371 public void createE2EServiceInstanceTestNullBPELResponse() {
372 new MockUp<RequestsDatabase>() {
374 public OperationStatus getOperationStatusByServiceName(
375 String serviceName) {
376 OperationStatus operationStatus = new OperationStatus();
377 return operationStatus;
380 new MockUp<E2EServiceInstances>() {
382 private void createOperationStatusRecordForError(Action action,
383 String requestId) throws MsoDatabaseException {
387 new MockUp<CatalogDatabase>() {
389 public Service getServiceByModelName(String modelName) {
390 Service svc = new Service();
395 new MockUp<CatalogDatabase>() {
397 public ServiceRecipe getServiceRecipeByModelUUID(String modelUUID,
399 ServiceRecipe rec = new ServiceRecipe();
404 new MockUp<RequestClientFactory>() {
406 public RequestClient getRequestClient(String orchestrationURI,
407 MsoJavaProperties props) throws IllegalStateException {
408 RequestClient client = new CamundaClient();
409 client.setUrl("/test/url");
414 new MockUp<CamundaClient>() {
416 public HttpResponse post(String requestId, boolean isBaseVfModule,
417 int recipeTimeout, String requestAction,
418 String serviceInstanceId, String vnfId, String vfModuleId,
419 String volumeGroupId, String networkId, String configurationId, String serviceType,
420 String vnfType, String vfModuleType, String networkType,
421 String requestDetails, String recipeParamXsd) {
422 HttpResponse resp = null;
427 E2EServiceInstances instance = new E2EServiceInstances();
428 String request = jsonBody;
429 Response resp = instance.createE2EServiceInstance(request, "v3");
430 String respStr = resp.getEntity().toString();
431 assertTrue(respStr.contains("SVC2000"));
435 public void createE2EServiceInstanceTestBPMNNullREsponse() {
436 new MockUp<RequestsDatabase>() {
438 public OperationStatus getOperationStatusByServiceName(
439 String serviceName) {
440 OperationStatus operationStatus = new OperationStatus();
441 return operationStatus;
444 new MockUp<E2EServiceInstances>() {
446 private void createOperationStatusRecordForError(Action action,
447 String requestId) throws MsoDatabaseException {
451 new MockUp<CatalogDatabase>() {
453 public Service getServiceByModelName(String modelName) {
454 Service svc = new Service();
459 new MockUp<CatalogDatabase>() {
461 public ServiceRecipe getServiceRecipeByModelUUID(String modelUUID,
463 ServiceRecipe rec = new ServiceRecipe();
468 new MockUp<RequestClientFactory>() {
470 public RequestClient getRequestClient(String orchestrationURI,
471 MsoJavaProperties props) throws IllegalStateException {
472 RequestClient client = new CamundaClient();
473 client.setUrl("/test/url");
478 new MockUp<CamundaClient>() {
480 public HttpResponse post(String camundaReqXML, String requestId,
481 String requestTimeout, String schemaVersion,
482 String serviceInstanceId, String action) {
483 HttpResponse resp = null;
487 E2EServiceInstances instance = new E2EServiceInstances();
488 String request = jsonBody;
489 Response resp = instance.createE2EServiceInstance(request, "v3");
490 String respStr = resp.getEntity().toString();
491 assertTrue(respStr.contains("SVC2000"));
495 public void createE2EServiceInstanceTestNullBpmn() {
496 new MockUp<RequestsDatabase>() {
498 public OperationStatus getOperationStatusByServiceName(
499 String serviceName) {
500 OperationStatus operationStatus = new OperationStatus();
501 return operationStatus;
505 new MockUp<E2EServiceInstances>() {
507 private void createOperationStatusRecordForError(Action action,
508 String requestId) throws MsoDatabaseException {
512 new MockUp<CatalogDatabase>() {
514 public Service getServiceByModelName(String modelName) {
515 Service svc = new Service();
520 new MockUp<CatalogDatabase>() {
522 public ServiceRecipe getServiceRecipeByModelUUID(String modelUUID,
524 ServiceRecipe rec = new ServiceRecipe();
528 E2EServiceInstances instance = new E2EServiceInstances();
529 String request = jsonBody;
531 Response resp = instance.createE2EServiceInstance(request, "v3");
532 String respStr = resp.getEntity().toString();
533 assertTrue(respStr.contains("SVC2000"));
537 public void createE2EServiceInstanceTestNullReceipe() {
538 new MockUp<RequestsDatabase>() {
540 public OperationStatus getOperationStatusByServiceName(
541 String serviceName) {
542 OperationStatus operationStatus = new OperationStatus();
543 return operationStatus;
546 new MockUp<E2EServiceInstances>() {
548 private void createOperationStatusRecordForError(Action action,
549 String requestId) throws MsoDatabaseException {
554 E2EServiceInstances instance = new E2EServiceInstances();
555 String request = jsonBody;
556 Response resp = instance.createE2EServiceInstance(request, "v3");
557 String respStr = resp.getEntity().toString();
558 assertTrue(respStr.contains("SVC2000"));
562 public void createE2EServiceInstanceTestNullDBResponse() {
564 new MockUp<RequestsDatabase>() {
566 public OperationStatus getOperationStatusByServiceName(
567 String serviceName) {
568 OperationStatus operationStatus = new OperationStatus();
569 return operationStatus;
572 new MockUp<E2EServiceInstances>() {
574 private void createOperationStatusRecordForError(Action action,
575 String requestId) throws MsoDatabaseException {
580 E2EServiceInstances instance = new E2EServiceInstances();
581 String request = jsonBody;
582 Response resp = instance.createE2EServiceInstance(request, "v3");
583 String respStr = resp.getEntity().toString();
584 assertTrue(respStr.contains("SVC2000"));
588 public void createE2EServiceInstanceTestInvalidRequest() {
589 new MockUp<RequestsDatabase>() {
591 public OperationStatus getOperationStatusByServiceName(
592 String serviceName) {
593 OperationStatus operationStatus = new OperationStatus();
594 return operationStatus;
598 new MockUp<E2EServiceInstances>() {
600 private void createOperationStatusRecordForError(Action action,
601 String requestId) throws MsoDatabaseException {
605 E2EServiceInstances instance = new E2EServiceInstances();
606 String request = jsonBody;
607 Response resp = instance.createE2EServiceInstance(request, "v3");
608 String respStr = resp.getEntity().toString();
609 assertTrue(respStr.contains("SVC2000"));
613 public void createE2EServiceInstanceTestEmptyDBQuery() {
614 new MockUp<E2EServiceInstances>() {
616 private void createOperationStatusRecordForError(Action action,
617 String requestId) throws MsoDatabaseException {
622 E2EServiceInstances instance = new E2EServiceInstances();
623 String request = jsonBody;
624 Response resp = instance.createE2EServiceInstance(request, "v3");
625 String respStr = resp.getEntity().toString();
626 assertTrue(respStr.contains("SVC2000"));
631 public void createE2EServiceInstanceTestDBQueryFail() {
632 new MockUp<RequestsDatabase>() {
634 public OperationStatus getOperationStatusByServiceName(
635 String serviceName) {
636 OperationStatus operationStatus = new OperationStatus();
637 return operationStatus;
641 new MockUp<E2EServiceInstances>() {
643 private void createOperationStatusRecordForError(Action action,
644 String requestId) throws MsoDatabaseException {
648 E2EServiceInstances instance = new E2EServiceInstances();
649 String request = jsonBody;
650 Response resp = instance.createE2EServiceInstance(request, "v3");
651 String respStr = resp.getEntity().toString();
652 assertTrue(respStr.contains("SVC2000"));
656 public void createE2EServiceInstanceTestForEmptyRequest() {
658 new MockUp<E2EServiceInstances>() {
660 private void createOperationStatusRecordForError(Action action,
661 String requestId) throws MsoDatabaseException {
665 E2EServiceInstances instance = new E2EServiceInstances();
667 Response resp = instance.createE2EServiceInstance(request, "v3");
668 String respStr = resp.getEntity().toString();
670 .contains("Mapping of request to JSON object failed. No content to map due to end-of-input"));
674 public void deleteE2EServiceInstanceTestNormal() {
676 final MockUp<CatalogDatabase> mockCDB = new MockUp<CatalogDatabase>() {
678 public Service getServiceByModelName(String modelName) {
679 Service svc = new Service();
684 public ServiceRecipe getServiceRecipeByModelUUID(String modelUUID,
686 ServiceRecipe rec = new ServiceRecipe();
687 rec.setOrchestrationUri("/test/delE2E");
688 rec.setRecipeTimeout(180);
693 final MockUp<MsoRequest> mockMsoRequest = new MockUp<MsoRequest>() {
695 public void createRequestRecord(Status status, Action action) {
700 final MockUp<CamundaClient> mockCmaundaClient = new MockUp<CamundaClient>() {
702 public HttpResponse post(String requestId, boolean isBaseVfModule,
703 int recipeTimeout, String requestAction, String serviceInstanceId,
704 String vnfId, String vfModuleId, String volumeGroupId, String networkId, String configurationId,
705 String serviceType, String vnfType, String vfModuleType, String networkType,
706 String requestDetails, String recipeParamXsd)
707 throws ClientProtocolException, IOException {
708 ProtocolVersion pv = new ProtocolVersion("HTTP", 1, 1);
709 HttpResponse resp = new BasicHttpResponse(pv, 200, "test response");
710 BasicHttpEntity entity = new BasicHttpEntity();
711 String body = "{\"response\":\"success\",\"message\":\"success\"}";
712 InputStream instream = new ByteArrayInputStream(body.getBytes());
713 entity.setContent(instream);
714 resp.setEntity(entity);
720 E2EServiceInstances instance = new E2EServiceInstances();
721 String request = "{\"globalSubscriberId\":\"299392392\",\"serviceType\":\"VoLTE\"}";
723 instance.deleteE2EServiceInstance(request, "v3", "12345678");
725 mockMsoRequest.tearDown();
726 mockCmaundaClient.tearDown();
731 public void deleteE2EServiceInstanceTestFail() {
732 E2EServiceInstances instance = new E2EServiceInstances();
733 String request = "{\"globalSubscriberId\":\"299392392\",\"serviceType\":\"VoLTE\"}";
734 instance.deleteE2EServiceInstance(request, "v3", "12345678");
738 public void deleteE2EServiceInstanceTestFailClient(@Mocked AbstractSessionFactoryManager sessionFactoryManager,
739 @Mocked Session session) {
740 final MockUp<CatalogDatabase> mockCDB = new MockUp<CatalogDatabase>() {
742 public Service getServiceByModelName(String modelName) {
743 Service svc = new Service();
748 public ServiceRecipe getServiceRecipeByModelUUID(String modelUUID,
750 ServiceRecipe rec = new ServiceRecipe();
751 rec.setOrchestrationUri("/test/delE2E");
752 rec.setRecipeTimeout(180);
757 final MockUp<MsoRequest> mockMsoRequest = new MockUp<MsoRequest>() {
759 public void createRequestRecord(Status status, Action action) {
764 E2EServiceInstances instance = new E2EServiceInstances();
765 String request = "{\"globalSubscriberId\":\"299392392\",\"serviceType\":\"VoLTE\"}";
767 instance.deleteE2EServiceInstance(request, "v3", "12345678");
769 mockMsoRequest.tearDown();
774 public void deleteE2EServiceInstanceTestFailRecipe(@Mocked AbstractSessionFactoryManager sessionFactoryManager,
775 @Mocked Session session) {
776 final MockUp<CatalogDatabase> mockCDB = new MockUp<CatalogDatabase>() {
778 public Service getServiceByModelName(String modelName) {
779 Service svc = new Service();
784 public ServiceRecipe getServiceRecipeByModelUUID(String modelUUID,
786 ServiceRecipe rec = new ServiceRecipe();
791 final MockUp<MsoRequest> mockMsoRequest = new MockUp<MsoRequest>() {
793 public void createRequestRecord(Status status, Action action) {
798 new Expectations() {{
799 sessionFactoryManager.getSessionFactory().openSession();
803 E2EServiceInstances instance = new E2EServiceInstances();
804 String request = "{\"globalSubscriberId\":\"299392392\",\"serviceType\":\"VoLTE\"}";
806 instance.deleteE2EServiceInstance(request, "v3", "12345678");
808 mockMsoRequest.tearDown();
813 public void deleteE2EServiceInstanceTestFailModelName(@Mocked AbstractSessionFactoryManager sessionFactoryManager,
814 @Mocked Session session) {
815 final MockUp<MsoRequest> mockMsoRequest = new MockUp<MsoRequest>() {
817 public void createRequestRecord(Status status, Action action) {
822 new Expectations() {{
823 sessionFactoryManager.getSessionFactory().openSession();
827 E2EServiceInstances instance = new E2EServiceInstances();
828 String request = "{\"globalSubscriberId\":\"299392392\",\"serviceType\":\"VoLTE\"}";
830 instance.deleteE2EServiceInstance(request, "v3", "12345678");
831 mockMsoRequest.tearDown();
836 public void getE2EServiceInstanceTest() {
838 new MockUp<RequestsDatabase>() {
840 public OperationStatus getOperationStatus(String serviceId,
841 String operationId) {
842 OperationStatus os = new OperationStatus();
844 os.setOperationContent("");
845 os.setOperationId("123456");
847 os.setServiceId("12345");
848 os.setServiceName("VoLTE");
856 E2EServiceInstances instance = new E2EServiceInstances();
857 Response resp = instance
858 .getE2EServiceInstances("12345", "v3", "123456");
863 public void updateE2EServiceInstanceTestNormal() {
864 new MockUp<RequestsDatabase>() {
866 public OperationStatus getOperationStatusByServiceId(
868 OperationStatus operationStatus = new OperationStatus();
869 operationStatus.setProgress("100");
870 operationStatus.setResult("finish");
871 return operationStatus;
874 new MockUp<E2EServiceInstances>() {
876 private void createOperationStatusRecordForError(Action action,
877 String requestId) throws MsoDatabaseException {
881 new MockUp<CatalogDatabase>() {
883 public Service getServiceByModelName(String modelName) {
884 Service svc = new Service();
889 new MockUp<CatalogDatabase>() {
891 public ServiceRecipe getServiceRecipeByModelUUID(String modelUUID,
893 ServiceRecipe rec = new ServiceRecipe();
898 new MockUp<RequestClientFactory>() {
900 public RequestClient getRequestClient(String orchestrationURI,
901 MsoJavaProperties props) throws IllegalStateException {
902 RequestClient client = new CamundaClient();
903 client.setUrl("/test/url");
908 new MockUp<CamundaClient>() {
910 public HttpResponse post(String requestId, boolean isBaseVfModule,
911 int recipeTimeout, String requestAction,
912 String serviceInstanceId, String vnfId, String vfModuleId,
913 String volumeGroupId, String networkId, String configurationId, String serviceType,
914 String vnfType, String vfModuleType, String networkType,
915 String requestDetails, String recipeParamXsd) {
916 ProtocolVersion pv = new ProtocolVersion("HTTP", 1, 1);
917 HttpResponse resp = new BasicHttpResponse(pv, 202,
919 BasicHttpEntity entity = new BasicHttpEntity();
920 String body = "{\"response\":\"success\",\"message\":\"success\"}";
921 InputStream instream = new ByteArrayInputStream(body.getBytes());
922 entity.setContent(instream);
923 resp.setEntity(entity);
928 E2EServiceInstances instance = new E2EServiceInstances();
929 String request = jsonBody;
930 Response resp = instance.updateE2EServiceInstance(request, "v3", "12345");
931 String respStr = resp.getEntity().toString();
932 assertTrue(respStr.contains("success"));
936 public void updateE2EServiceInstanceTestChkStatusFalse() {
937 new MockUp<RequestsDatabase>() {
939 public OperationStatus getOperationStatusByServiceId(
941 OperationStatus operationStatus = new OperationStatus();
942 operationStatus.setResult("processing");
943 return operationStatus;
946 new MockUp<E2EServiceInstances>() {
948 private void createOperationStatusRecordForError(Action action,
949 String requestId) throws MsoDatabaseException {
953 new MockUp<CatalogDatabase>() {
955 public Service getServiceByModelName(String modelName) {
956 Service svc = new Service();
961 new MockUp<CatalogDatabase>() {
963 public ServiceRecipe getServiceRecipeByModelUUID(String modelUUID,
965 ServiceRecipe rec = new ServiceRecipe();
970 new MockUp<RequestClientFactory>() {
972 public RequestClient getRequestClient(String orchestrationURI,
973 MsoJavaProperties props) throws IllegalStateException {
974 RequestClient client = new CamundaClient();
975 client.setUrl("/test/url");
980 new MockUp<CamundaClient>() {
982 public HttpResponse post(String requestId, boolean isBaseVfModule,
983 int recipeTimeout, String requestAction,
984 String serviceInstanceId, String vnfId, String vfModuleId,
985 String volumeGroupId, String networkId, String configurationId, String serviceType,
986 String vnfType, String vfModuleType, String networkType,
987 String requestDetails, String recipeParamXsd) {
988 ProtocolVersion pv = new ProtocolVersion("HTTP", 1, 1);
989 HttpResponse resp = new BasicHttpResponse(pv, 202,
991 BasicHttpEntity entity = new BasicHttpEntity();
992 String body = "{\"response\":\"success\",\"message\":\"success\"}";
993 InputStream instream = new ByteArrayInputStream(body.getBytes());
994 entity.setContent(instream);
995 resp.setEntity(entity);
1000 E2EServiceInstances instance = new E2EServiceInstances();
1001 String request = jsonBody;
1002 Response resp = instance.updateE2EServiceInstance(request, "v3", "12345");
1003 String respStr = resp.getEntity().toString();
1004 assertTrue(!respStr.contains("SVC2000"));
1008 public void updateE2EServiceInstanceExceptionMsoRequestTest() {
1009 new MockUp<RequestsDatabase>() {
1011 public OperationStatus getOperationStatusByServiceId(
1013 OperationStatus operationStatus = new OperationStatus();
1014 operationStatus.setProgress("100");
1015 operationStatus.setResult("finish");
1016 return operationStatus;
1019 new MockUp<E2EServiceInstances>() {
1021 private void createOperationStatusRecordForError(Action action,
1022 String requestId) throws MsoDatabaseException {
1026 new MockUp<CatalogDatabase>() {
1028 public Service getServiceByModelName(String modelName) {
1029 Service svc = new Service();
1034 new MockUp<CatalogDatabase>() {
1036 public ServiceRecipe getServiceRecipeByModelUUID(String modelUUID,
1038 ServiceRecipe rec = new ServiceRecipe();
1043 new MockUp<RequestClientFactory>() {
1045 public RequestClient getRequestClient(String orchestrationURI,
1046 MsoJavaProperties props) throws IllegalStateException {
1047 RequestClient client = new CamundaClient();
1048 client.setUrl("/test/url");
1053 new MockUp<CamundaClient>() {
1055 public HttpResponse post(String requestId, boolean isBaseVfModule,
1056 int recipeTimeout, String requestAction,
1057 String serviceInstanceId, String vnfId, String vfModuleId,
1058 String volumeGroupId, String networkId, String configurationId, String serviceType,
1059 String vnfType, String vfModuleType, String networkType,
1060 String requestDetails, String recipeParamXsd) {
1061 ProtocolVersion pv = new ProtocolVersion("HTTP", 1, 1);
1062 HttpResponse resp = new BasicHttpResponse(pv, 202,
1064 BasicHttpEntity entity = new BasicHttpEntity();
1065 String body = "{\"response\":\"success\",\"message\":\"success\"}";
1066 InputStream instream = new ByteArrayInputStream(body.getBytes());
1067 entity.setContent(instream);
1068 resp.setEntity(entity);
1072 MockUp<MsoRequest> msoRequest = new MockUp<MsoRequest>() {
1074 void parse (ServiceInstancesRequest sir, HashMap<String,String> instanceIdMap, Action action, String version, String originalRequestJSON) throws ValidationException {
1076 throw new ValidationException("mock failure");
1079 E2EServiceInstances instance = new E2EServiceInstances();
1080 String request = jsonBody;
1081 Response resp = instance.updateE2EServiceInstance(request, "v3", "12345");
1082 assertEquals(Response.Status.BAD_REQUEST.getStatusCode(), resp.getStatus());
1083 msoRequest.tearDown();
1087 public void updateE2EServiceInstanceExceptionCatalogDbTest() {
1088 new MockUp<RequestsDatabase>() {
1090 public OperationStatus getOperationStatusByServiceId(
1092 OperationStatus operationStatus = new OperationStatus();
1093 operationStatus.setProgress("100");
1094 operationStatus.setResult("finish");
1095 return operationStatus;
1098 new MockUp<E2EServiceInstances>() {
1100 private void createOperationStatusRecordForError(Action action,
1101 String requestId) throws MsoDatabaseException {
1105 MockUp<CatalogDatabase> catalog = new MockUp<CatalogDatabase>() {
1107 public Service getServiceByModelName(String modelName) throws Exception {
1108 throw new Exception();
1112 new MockUp<CatalogDatabase>() {
1114 public ServiceRecipe getServiceRecipeByModelUUID(String modelUUID,
1116 ServiceRecipe rec = new ServiceRecipe();
1121 new MockUp<RequestClientFactory>() {
1123 public RequestClient getRequestClient(String orchestrationURI,
1124 MsoJavaProperties props) throws IllegalStateException {
1125 RequestClient client = new CamundaClient();
1126 client.setUrl("/test/url");
1131 new MockUp<CamundaClient>() {
1133 public HttpResponse post(String requestId, boolean isBaseVfModule,
1134 int recipeTimeout, String requestAction,
1135 String serviceInstanceId, String vnfId, String vfModuleId,
1136 String volumeGroupId, String networkId, String configurationId, String serviceType,
1137 String vnfType, String vfModuleType, String networkType,
1138 String requestDetails, String recipeParamXsd) {
1139 ProtocolVersion pv = new ProtocolVersion("HTTP", 1, 1);
1140 HttpResponse resp = new BasicHttpResponse(pv, 202,
1142 BasicHttpEntity entity = new BasicHttpEntity();
1143 String body = "{\"response\":\"success\",\"message\":\"success\"}";
1144 InputStream instream = new ByteArrayInputStream(body.getBytes());
1145 entity.setContent(instream);
1146 resp.setEntity(entity);
1151 E2EServiceInstances instance = new E2EServiceInstances();
1152 String request = jsonBody;
1153 Response resp = instance.updateE2EServiceInstance(request, "v3", "12345");
1154 assertEquals(Response.Status.NOT_FOUND.getStatusCode(), resp.getStatus());
1159 public void updateE2EServiceInstanceNullServiceTest() {
1160 new MockUp<RequestsDatabase>() {
1162 public OperationStatus getOperationStatusByServiceId(
1164 OperationStatus operationStatus = new OperationStatus();
1165 operationStatus.setProgress("100");
1166 operationStatus.setResult("finish");
1167 return operationStatus;
1170 new MockUp<E2EServiceInstances>() {
1172 private void createOperationStatusRecordForError(Action action,
1173 String requestId) throws MsoDatabaseException {
1177 new MockUp<CatalogDatabase>() {
1179 public Service getServiceByModelName(String modelName) {
1180 Service svc = new Service();
1185 MockUp<CatalogDatabase> catalog = new MockUp<CatalogDatabase>() {
1187 public ServiceRecipe getServiceRecipeByModelUUID(String modelUUID,
1193 new MockUp<RequestClientFactory>() {
1195 public RequestClient getRequestClient(String orchestrationURI,
1196 MsoJavaProperties props) throws IllegalStateException {
1197 RequestClient client = new CamundaClient();
1198 client.setUrl("/test/url");
1203 new MockUp<CamundaClient>() {
1205 public HttpResponse post(String requestId, boolean isBaseVfModule,
1206 int recipeTimeout, String requestAction,
1207 String serviceInstanceId, String vnfId, String vfModuleId,
1208 String volumeGroupId, String networkId, String configurationId, String serviceType,
1209 String vnfType, String vfModuleType, String networkType,
1210 String requestDetails, String recipeParamXsd) {
1211 ProtocolVersion pv = new ProtocolVersion("HTTP", 1, 1);
1212 HttpResponse resp = new BasicHttpResponse(pv, 202,
1214 BasicHttpEntity entity = new BasicHttpEntity();
1215 String body = "{\"response\":\"success\",\"message\":\"success\"}";
1216 InputStream instream = new ByteArrayInputStream(body.getBytes());
1217 entity.setContent(instream);
1218 resp.setEntity(entity);
1223 E2EServiceInstances instance = new E2EServiceInstances();
1224 String request = jsonBody;
1225 Response resp = instance.updateE2EServiceInstance(request, "v3", "12345");
1226 assertEquals(Response.Status.NOT_FOUND.getStatusCode(), resp.getStatus());
1231 public void updateE2EServiceInstanceRequestClientExceptionTest() {
1232 new MockUp<RequestsDatabase>() {
1234 public OperationStatus getOperationStatusByServiceId(
1236 OperationStatus operationStatus = new OperationStatus();
1237 operationStatus.setProgress("100");
1238 operationStatus.setResult("finish");
1239 return operationStatus;
1242 new MockUp<E2EServiceInstances>() {
1244 private void createOperationStatusRecordForError(Action action,
1245 String requestId) throws MsoDatabaseException {
1249 new MockUp<CatalogDatabase>() {
1251 public Service getServiceByModelName(String modelName) {
1252 Service svc = new Service();
1257 new MockUp<CatalogDatabase>() {
1259 public ServiceRecipe getServiceRecipeByModelUUID(String modelUUID,
1261 ServiceRecipe rec = new ServiceRecipe();
1266 new MockUp<RequestClientFactory>() {
1268 public RequestClient getRequestClient(String orchestrationURI,
1269 MsoJavaProperties props) throws IllegalStateException {
1270 RequestClient client = new CamundaClient();
1271 client.setUrl("/test/url");
1276 MockUp<CamundaClient> client = new MockUp<CamundaClient>() {
1278 public HttpResponse post(String requestId, boolean isBaseVfModule,
1279 int recipeTimeout, String requestAction,
1280 String serviceInstanceId, String vnfId, String vfModuleId,
1281 String volumeGroupId, String networkId, String configurationId, String serviceType,
1282 String vnfType, String vfModuleType, String networkType,
1283 String requestDetails, String recipeParamXsd) throws Exception {
1284 throw new Exception();
1288 E2EServiceInstances instance = new E2EServiceInstances();
1289 String request = jsonBody;
1290 Response resp = instance.updateE2EServiceInstance(request, "v3", "12345");
1291 assertEquals(Response.Status.BAD_GATEWAY.getStatusCode(), resp.getStatus());
1296 public void compareModelwithTargetVersionBadRequest(){
1298 E2EServiceInstances instance = new E2EServiceInstances();
1299 Response response = instance.compareModelwithTargetVersion("", "12345", "v3");
1301 assertNotNull(response);
1302 assertTrue(response.getEntity().toString().contains("Mapping of request to JSON object failed."));
1306 public void compareModelwithTargetVersionFailedBPMNCall(){
1308 new MockUp<CamundaClient>() {
1310 public HttpResponse post(String requestId, boolean isBaseVfModule,
1311 int recipeTimeout, String requestAction, String serviceInstanceId,
1312 String vnfId, String vfModuleId, String volumeGroupId, String networkId, String configurationId,
1313 String serviceType, String vnfType, String vfModuleType, String networkType,
1314 String requestDetails, String recipeParamXsd)
1315 throws ClientProtocolException, IOException {
1317 throw new ClientProtocolException();
1321 E2EServiceInstances instance = new E2EServiceInstances();
1322 Response response = instance.compareModelwithTargetVersion(compareModelsRequest, "12345", "v3");
1324 assertNotNull(response);
1325 assertTrue(response.getEntity().toString().contains("Failed calling bpmn"));
1330 public void compareModelwithTargetVersionSuccess(){
1332 new MockUp<CamundaClient>() {
1334 public HttpResponse post(String requestId, boolean isBaseVfModule,
1335 int recipeTimeout, String requestAction, String serviceInstanceId,
1336 String vnfId, String vfModuleId, String volumeGroupId, String networkId, String configurationId,
1337 String serviceType, String vnfType, String vfModuleType, String networkType,
1338 String requestDetails, String recipeParamXsd)
1339 throws ClientProtocolException, IOException {
1341 ProtocolVersion pv = new ProtocolVersion("HTTP", 1, 1);
1342 HttpResponse resp = new BasicHttpResponse(pv, 202,
1343 "compareModelwithTargetVersion, test response");
1344 BasicHttpEntity entity = new BasicHttpEntity();
1345 String body = "{\"response\":\"success\",\"message\":\"success\"}";
1346 InputStream instream = new ByteArrayInputStream(body.getBytes());
1347 entity.setContent(instream);
1348 resp.setEntity(entity);
1354 E2EServiceInstances instance = new E2EServiceInstances();
1355 Response response = instance.compareModelwithTargetVersion(compareModelsRequest, "12345", "v3");
1357 assertNotNull(response);
1358 assertTrue(response.getStatus()==202);
1363 public void scaleE2EserviceInstancesTestFailInvalidRequest(@Mocked AbstractSessionFactoryManager sessionFactoryManager,
1364 @Mocked Session session ) {
1366 new Expectations() {{
1367 sessionFactoryManager.getSessionFactory().openSession(); result = session;
1370 E2EServiceInstances instance = new E2EServiceInstances();
1371 Response response = instance.scaleE2EServiceInstance(jsonBody, "v3", "12345");
1375 public void scaleE2EserviceInstancesTestNormal() {
1377 final MockUp<MsoRequest> mockMsoRequest = new MockUp<MsoRequest>() {
1379 public void createRequestRecord(Status status, Action action) {
1384 final MockUp<CatalogDatabase> mockCDB = new MockUp<CatalogDatabase>() {
1386 public Service getServiceByModelName(String modelName) {
1387 Service svc = new Service();
1392 public ServiceRecipe getServiceRecipeByModelUUID(String modelUUID,
1394 ServiceRecipe rec = new ServiceRecipe();
1395 rec.setOrchestrationUri("/test/delE2E");
1396 rec.setRecipeTimeout(180);
1401 final MockUp<RequestClientFactory> mockRequestClient = new MockUp<RequestClientFactory>() {
1403 public RequestClient getRequestClient(String orchestrationURI,
1404 MsoJavaProperties props) throws IllegalStateException {
1405 RequestClient client = new CamundaClient();
1406 client.setUrl("/test/url");
1411 final MockUp<CamundaClient> mockCamundaClient = new MockUp<CamundaClient>() {
1413 public HttpResponse post(String requestId, boolean isBaseVfModule,
1414 int recipeTimeout, String requestAction,
1415 String serviceInstanceId, String vnfId, String vfModuleId,
1416 String volumeGroupId, String networkId, String configurationId, String serviceType,
1417 String vnfType, String vfModuleType, String networkType,
1418 String requestDetails, String recipeParamXsd) {
1419 ProtocolVersion pv = new ProtocolVersion("HTTP", 1, 1);
1420 HttpResponse resp = new BasicHttpResponse(pv, 202,
1422 BasicHttpEntity entity = new BasicHttpEntity();
1423 String body = "{\"response\":\"success\",\"message\":\"success\"}";
1424 InputStream instream = new ByteArrayInputStream(body.getBytes());
1425 entity.setContent(instream);
1426 resp.setEntity(entity);
1431 E2EServiceInstances instance = new E2EServiceInstances();
1432 Response response = instance.scaleE2EServiceInstance(scaleRequest, "v3", "12345");
1433 mockMsoRequest.tearDown();
1435 mockRequestClient.tearDown();
1436 mockCamundaClient.tearDown();
1440 public void scaleE2EserviceInstancesTestFailCamundaClient(@Mocked AbstractSessionFactoryManager sessionFactoryManager,
1441 @Mocked Session session) {
1443 new Expectations() {{
1444 sessionFactoryManager.getSessionFactory().openSession(); result = session;
1447 final MockUp<MsoRequest> mockMsoRequest = new MockUp<MsoRequest>() {
1449 public void createRequestRecord(Status status, Action action) {
1454 final MockUp<CatalogDatabase> mockCDB = new MockUp<CatalogDatabase>() {
1456 public Service getServiceByModelName(String modelName) {
1457 Service svc = new Service();
1462 public ServiceRecipe getServiceRecipeByModelUUID(String modelUUID,
1464 ServiceRecipe rec = new ServiceRecipe();
1465 rec.setOrchestrationUri("/test/delE2E");
1466 rec.setRecipeTimeout(180);
1471 final MockUp<RequestClientFactory> mockRequestClient = new MockUp<RequestClientFactory>() {
1473 public RequestClient getRequestClient(String orchestrationURI,
1474 MsoJavaProperties props) throws IllegalStateException {
1475 RequestClient client = new CamundaClient();
1476 client.setUrl("/test/url");
1481 E2EServiceInstances instance = new E2EServiceInstances();
1482 Response response = instance.scaleE2EServiceInstance(scaleRequest, "v3", "12345");
1483 mockMsoRequest.tearDown();
1485 mockRequestClient.tearDown();
1489 public void scaleE2EserviceInstancesTestFailRequestClient(@Mocked AbstractSessionFactoryManager sessionFactoryManager,
1490 @Mocked Session session) {
1492 final MockUp<MsoRequest> mockMsoRequest = new MockUp<MsoRequest>() {
1494 public void createRequestRecord(Status status, Action action) {
1499 final MockUp<CatalogDatabase> mockCDB = new MockUp<CatalogDatabase>() {
1501 public Service getServiceByModelName(String modelName) {
1502 Service svc = new Service();
1507 public ServiceRecipe getServiceRecipeByModelUUID(String modelUUID,
1509 ServiceRecipe rec = new ServiceRecipe();
1510 rec.setOrchestrationUri("/test/delE2E");
1511 rec.setRecipeTimeout(180);
1516 E2EServiceInstances instance = new E2EServiceInstances();
1517 Response response = instance.scaleE2EServiceInstance(scaleRequest, "v3", "12345");
1518 mockMsoRequest.tearDown();