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.RequestClientParamater;
44 import org.openecomp.mso.apihandler.common.ValidationException;
45 import org.openecomp.mso.db.AbstractSessionFactoryManager;
46 import org.openecomp.mso.db.catalog.CatalogDatabase;
47 import org.openecomp.mso.db.catalog.beans.Service;
48 import org.openecomp.mso.db.catalog.beans.ServiceRecipe;
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;
168 new MockUp<CatalogDatabase>() {
170 public Service getServiceByModelName(String modelName) {
171 Service svc = new Service();
176 new MockUp<CatalogDatabase>() {
178 public ServiceRecipe getServiceRecipeByModelUUID(String modelUUID,
180 ServiceRecipe rec = new ServiceRecipe();
185 new MockUp<RequestClientFactory>() {
187 public RequestClient getRequestClient(String orchestrationURI,
188 MsoJavaProperties props) throws IllegalStateException {
189 RequestClient client = new CamundaClient();
190 client.setUrl("/test/url");
195 new MockUp<CamundaClient>() {
197 public HttpResponse post(RequestClientParamater requestClientParamater) {
198 ProtocolVersion pv = new ProtocolVersion("HTTP", 1, 1);
199 HttpResponse resp = new BasicHttpResponse(pv, 202,
201 BasicHttpEntity entity = new BasicHttpEntity();
202 String body = "{\"content\":\"success\",\"message\":\"success\"}";
203 InputStream instream = new ByteArrayInputStream(body.getBytes());
204 entity.setContent(instream);
205 resp.setEntity(entity);
210 E2EServiceInstances instance = new E2EServiceInstances();
211 String request = jsonBody;
212 Response resp = instance.createE2EServiceInstance(request, "v3");
213 String respStr = resp.getEntity().toString();
214 assertTrue(respStr.contains("success"));
218 public void createE2EServiceInstanceTestBpelHTTPException() {
219 new MockUp<RequestsDatabase>() {
221 public OperationStatus getOperationStatusByServiceName(
222 String serviceName) {
223 OperationStatus operationStatus = new OperationStatus();
224 return operationStatus;
227 new MockUp<CatalogDatabase>() {
229 public Service getServiceByModelName(String modelName) {
230 Service svc = new Service();
235 new MockUp<CatalogDatabase>() {
237 public ServiceRecipe getServiceRecipeByModelUUID(String modelUUID,
239 ServiceRecipe rec = new ServiceRecipe();
244 new MockUp<RequestClientFactory>() {
246 public RequestClient getRequestClient(String orchestrationURI,
247 MsoJavaProperties props) throws IllegalStateException {
248 RequestClient client = new CamundaClient();
249 client.setUrl("/test/url");
254 new MockUp<CamundaClient>() {
256 public HttpResponse post(RequestClientParamater requestClientParamater) {
257 ProtocolVersion pv = new ProtocolVersion("HTTP", 1, 1);
258 HttpResponse resp = new BasicHttpResponse(pv, 500,
260 BasicHttpEntity entity = new BasicHttpEntity();
261 String body = "{\"content\":\"success\",\"message\":\"success\"}";
262 InputStream instream = new ByteArrayInputStream(body.getBytes());
263 entity.setContent(instream);
264 resp.setEntity(entity);
269 E2EServiceInstances instance = new E2EServiceInstances();
270 String request = jsonBody;
271 Response resp = instance.createE2EServiceInstance(request, "v3");
272 String respStr = resp.getEntity().toString();
273 assertTrue(respStr.contains("SVC2000"));
277 public void createE2EServiceInstanceTestBpelHTTPExceptionWithNullREsponseBody() {
278 new MockUp<RequestsDatabase>() {
280 public OperationStatus getOperationStatusByServiceName(
281 String serviceName) {
282 OperationStatus operationStatus = new OperationStatus();
283 return operationStatus;
287 new MockUp<CatalogDatabase>() {
289 public Service getServiceByModelName(String modelName) {
290 Service svc = new Service();
295 new MockUp<CatalogDatabase>() {
297 public ServiceRecipe getServiceRecipeByModelUUID(String modelUUID,
299 ServiceRecipe rec = new ServiceRecipe();
304 new MockUp<RequestClientFactory>() {
306 public RequestClient getRequestClient(String orchestrationURI,
307 MsoJavaProperties props) throws IllegalStateException {
308 RequestClient client = new CamundaClient();
309 client.setUrl("/test/url");
314 new MockUp<CamundaClient>() {
316 public HttpResponse post(RequestClientParamater requestClientParamater) {
317 ProtocolVersion pv = new ProtocolVersion("HTTP", 1, 1);
318 HttpResponse resp = new BasicHttpResponse(pv, 500,
320 BasicHttpEntity entity = new BasicHttpEntity();
321 String body = "{\"content\":\"\",\"message\":\"success\"}";
322 InputStream instream = new ByteArrayInputStream(body.getBytes());
323 entity.setContent(instream);
324 resp.setEntity(entity);
329 E2EServiceInstances instance = new E2EServiceInstances();
330 String request = jsonBody;
331 Response resp = instance.createE2EServiceInstance(request, "v3");
332 String respStr = resp.getEntity().toString();
333 assertTrue(respStr.contains("SVC2000"));
337 public void createE2EServiceInstanceTestNullBPELResponse() {
338 new MockUp<RequestsDatabase>() {
340 public OperationStatus getOperationStatusByServiceName(
341 String serviceName) {
342 OperationStatus operationStatus = new OperationStatus();
343 return operationStatus;
347 new MockUp<CatalogDatabase>() {
349 public Service getServiceByModelName(String modelName) {
350 Service svc = new Service();
355 new MockUp<CatalogDatabase>() {
357 public ServiceRecipe getServiceRecipeByModelUUID(String modelUUID,
359 ServiceRecipe rec = new ServiceRecipe();
364 new MockUp<RequestClientFactory>() {
366 public RequestClient getRequestClient(String orchestrationURI,
367 MsoJavaProperties props) throws IllegalStateException {
368 RequestClient client = new CamundaClient();
369 client.setUrl("/test/url");
374 new MockUp<CamundaClient>() {
376 public HttpResponse post(RequestClientParamater requestClientParamater) {
377 HttpResponse resp = null;
382 E2EServiceInstances instance = new E2EServiceInstances();
383 String request = jsonBody;
384 Response resp = instance.createE2EServiceInstance(request, "v3");
385 String respStr = resp.getEntity().toString();
386 assertTrue(respStr.contains("serviceException"));
390 public void createE2EServiceInstanceTestBPMNNullREsponse() {
391 new MockUp<RequestsDatabase>() {
393 public OperationStatus getOperationStatusByServiceName(
394 String serviceName) {
395 OperationStatus operationStatus = new OperationStatus();
396 return operationStatus;
400 new MockUp<CatalogDatabase>() {
402 public Service getServiceByModelName(String modelName) {
403 Service svc = new Service();
408 new MockUp<CatalogDatabase>() {
410 public ServiceRecipe getServiceRecipeByModelUUID(String modelUUID,
412 ServiceRecipe rec = new ServiceRecipe();
417 new MockUp<RequestClientFactory>() {
419 public RequestClient getRequestClient(String orchestrationURI,
420 MsoJavaProperties props) throws IllegalStateException {
421 RequestClient client = new CamundaClient();
422 client.setUrl("/test/url");
427 new MockUp<CamundaClient>() {
429 public HttpResponse post(String camundaReqXML, String requestId,
430 String requestTimeout, String schemaVersion,
431 String serviceInstanceId, String action) {
432 HttpResponse resp = null;
436 E2EServiceInstances instance = new E2EServiceInstances();
437 String request = jsonBody;
438 Response resp = instance.createE2EServiceInstance(request, "v3");
439 String respStr = resp.getEntity().toString();
440 assertTrue(respStr.contains("serviceException"));
444 public void createE2EServiceInstanceTestNullBpmn() {
445 new MockUp<RequestsDatabase>() {
447 public OperationStatus getOperationStatusByServiceName(
448 String serviceName) {
449 OperationStatus operationStatus = new OperationStatus();
450 return operationStatus;
455 new MockUp<CatalogDatabase>() {
457 public Service getServiceByModelName(String modelName) {
458 Service svc = new Service();
463 new MockUp<CatalogDatabase>() {
465 public ServiceRecipe getServiceRecipeByModelUUID(String modelUUID,
467 ServiceRecipe rec = new ServiceRecipe();
471 E2EServiceInstances instance = new E2EServiceInstances();
472 String request = jsonBody;
474 Response resp = instance.createE2EServiceInstance(request, "v3");
475 String respStr = resp.getEntity().toString();
476 assertTrue(respStr.contains("serviceException"));
480 public void createE2EServiceInstanceTestNullReceipe() {
481 new MockUp<RequestsDatabase>() {
483 public OperationStatus getOperationStatusByServiceName(
484 String serviceName) {
485 OperationStatus operationStatus = new OperationStatus();
486 return operationStatus;
490 E2EServiceInstances instance = new E2EServiceInstances();
491 String request = jsonBody;
492 Response resp = instance.createE2EServiceInstance(request, "v3");
493 String respStr = resp.getEntity().toString();
494 assertTrue(respStr.contains("serviceException"));
498 public void createE2EServiceInstanceTestNullDBResponse() {
500 new MockUp<RequestsDatabase>() {
502 public OperationStatus getOperationStatusByServiceName(
503 String serviceName) {
504 OperationStatus operationStatus = new OperationStatus();
505 return operationStatus;
510 E2EServiceInstances instance = new E2EServiceInstances();
511 String request = jsonBody;
512 Response resp = instance.createE2EServiceInstance(request, "v3");
513 String respStr = resp.getEntity().toString();
514 assertTrue(respStr.contains("serviceException"));
518 public void createE2EServiceInstanceTestInvalidRequest() {
519 new MockUp<RequestsDatabase>() {
521 public OperationStatus getOperationStatusByServiceName(
522 String serviceName) {
523 OperationStatus operationStatus = new OperationStatus();
524 return operationStatus;
529 E2EServiceInstances instance = new E2EServiceInstances();
530 String request = jsonBody;
531 Response resp = instance.createE2EServiceInstance(request, "v3");
532 String respStr = resp.getEntity().toString();
533 assertTrue(respStr.contains("serviceException"));
537 public void createE2EServiceInstanceTestEmptyDBQuery() {
540 E2EServiceInstances instance = new E2EServiceInstances();
541 String request = jsonBody;
542 Response resp = instance.createE2EServiceInstance(request, "v3");
543 String respStr = resp.getEntity().toString();
544 assertTrue(respStr.contains("serviceException"));
549 public void createE2EServiceInstanceTestDBQueryFail() {
550 new MockUp<RequestsDatabase>() {
552 public OperationStatus getOperationStatusByServiceName(
553 String serviceName) {
554 OperationStatus operationStatus = new OperationStatus();
555 return operationStatus;
560 E2EServiceInstances instance = new E2EServiceInstances();
561 String request = jsonBody;
562 Response resp = instance.createE2EServiceInstance(request, "v3");
563 String respStr = resp.getEntity().toString();
564 assertTrue(respStr.contains("serviceException"));
568 public void createE2EServiceInstanceTestForEmptyRequest() {
571 E2EServiceInstances instance = new E2EServiceInstances();
573 Response resp = instance.createE2EServiceInstance(request, "v3");
574 String respStr = resp.getEntity().toString();
576 .contains("Mapping of request to JSON object failed. No content to map due to end-of-input"));
580 public void deleteE2EServiceInstanceTestNormal() {
582 final MockUp<CatalogDatabase> mockCDB = new MockUp<CatalogDatabase>() {
584 public Service getServiceByModelName(String modelName) {
585 Service svc = new Service();
590 public ServiceRecipe getServiceRecipeByModelUUID(String modelUUID,
592 ServiceRecipe rec = new ServiceRecipe();
593 rec.setOrchestrationUri("/test/delE2E");
594 rec.setRecipeTimeout(180);
599 final MockUp<MsoRequest> mockMsoRequest = new MockUp<MsoRequest>() {
601 public void createRequestRecord(Status status, Action action) {
606 final MockUp<CamundaClient> mockCmaundaClient = new MockUp<CamundaClient>() {
608 public HttpResponse post(RequestClientParamater requestClientParamater) {
609 ProtocolVersion pv = new ProtocolVersion("HTTP", 1, 1);
610 HttpResponse resp = new BasicHttpResponse(pv, 200, "test response");
611 BasicHttpEntity entity = new BasicHttpEntity();
612 String body = "{\"content\":\"success\",\"message\":\"success\"}";
613 InputStream instream = new ByteArrayInputStream(body.getBytes());
614 entity.setContent(instream);
615 resp.setEntity(entity);
621 E2EServiceInstances instance = new E2EServiceInstances();
622 String request = "{\"globalSubscriberId\":\"299392392\",\"serviceType\":\"VoLTE\"}";
624 instance.deleteE2EServiceInstance(request, "v3", "12345678");
626 mockMsoRequest.tearDown();
627 mockCmaundaClient.tearDown();
632 public void deleteE2EServiceInstanceTestFail() {
633 E2EServiceInstances instance = new E2EServiceInstances();
634 String request = "{\"globalSubscriberId\":\"299392392\",\"serviceType\":\"VoLTE\"}";
635 instance.deleteE2EServiceInstance(request, "v3", "12345678");
639 public void deleteE2EServiceInstanceTestFailClient(@Mocked AbstractSessionFactoryManager sessionFactoryManager,
640 @Mocked Session session) {
641 final MockUp<CatalogDatabase> mockCDB = new MockUp<CatalogDatabase>() {
643 public Service getServiceByModelName(String modelName) {
644 Service svc = new Service();
649 public ServiceRecipe getServiceRecipeByModelUUID(String modelUUID,
651 ServiceRecipe rec = new ServiceRecipe();
652 rec.setOrchestrationUri("/test/delE2E");
653 rec.setRecipeTimeout(180);
658 final MockUp<MsoRequest> mockMsoRequest = new MockUp<MsoRequest>() {
660 public void createRequestRecord(Status status, Action action) {
665 E2EServiceInstances instance = new E2EServiceInstances();
666 String request = "{\"globalSubscriberId\":\"299392392\",\"serviceType\":\"VoLTE\"}";
668 instance.deleteE2EServiceInstance(request, "v3", "12345678");
670 mockMsoRequest.tearDown();
675 public void deleteE2EServiceInstanceTestFailRecipe(@Mocked AbstractSessionFactoryManager sessionFactoryManager,
676 @Mocked Session session) {
677 final MockUp<CatalogDatabase> mockCDB = new MockUp<CatalogDatabase>() {
679 public Service getServiceByModelName(String modelName) {
680 Service svc = new Service();
685 public ServiceRecipe getServiceRecipeByModelUUID(String modelUUID,
687 ServiceRecipe rec = new ServiceRecipe();
692 final MockUp<MsoRequest> mockMsoRequest = new MockUp<MsoRequest>() {
694 public void createRequestRecord(Status status, Action action) {
699 E2EServiceInstances instance = new E2EServiceInstances();
700 String request = "{\"globalSubscriberId\":\"299392392\",\"serviceType\":\"VoLTE\"}";
702 instance.deleteE2EServiceInstance(request, "v3", "12345678");
704 mockMsoRequest.tearDown();
709 public void deleteE2EServiceInstanceTestFailModelName(@Mocked AbstractSessionFactoryManager sessionFactoryManager,
710 @Mocked Session session) {
711 final MockUp<MsoRequest> mockMsoRequest = new MockUp<MsoRequest>() {
713 public void createRequestRecord(Status status, Action action) {
718 new Expectations() {{
719 sessionFactoryManager.getSessionFactory().openSession();
723 E2EServiceInstances instance = new E2EServiceInstances();
724 String request = "{\"globalSubscriberId\":\"299392392\",\"serviceType\":\"VoLTE\"}";
726 instance.deleteE2EServiceInstance(request, "v3", "12345678");
727 mockMsoRequest.tearDown();
732 public void getE2EServiceInstanceTest() {
734 new MockUp<RequestsDatabase>() {
736 public OperationStatus getOperationStatus(String serviceId,
737 String operationId) {
738 OperationStatus os = new OperationStatus();
740 os.setOperationContent("");
741 os.setOperationId("123456");
743 os.setServiceId("12345");
744 os.setServiceName("VoLTE");
752 E2EServiceInstances instance = new E2EServiceInstances();
753 Response resp = instance
754 .getE2EServiceInstances("12345", "v3", "123456");
759 public void updateE2EServiceInstanceTestNormal() {
760 new MockUp<RequestsDatabase>() {
762 public OperationStatus getOperationStatusByServiceId(
764 OperationStatus operationStatus = new OperationStatus();
765 operationStatus.setProgress("100");
766 operationStatus.setResult("finish");
767 return operationStatus;
771 new MockUp<CatalogDatabase>() {
773 public Service getServiceByModelName(String modelName) {
774 Service svc = new Service();
779 new MockUp<CatalogDatabase>() {
781 public ServiceRecipe getServiceRecipeByModelUUID(String modelUUID,
783 ServiceRecipe rec = new ServiceRecipe();
788 new MockUp<RequestClientFactory>() {
790 public RequestClient getRequestClient(String orchestrationURI,
791 MsoJavaProperties props) throws IllegalStateException {
792 RequestClient client = new CamundaClient();
793 client.setUrl("/test/url");
798 new MockUp<CamundaClient>() {
800 public HttpResponse post(RequestClientParamater requestClientParamater) {
801 ProtocolVersion pv = new ProtocolVersion("HTTP", 1, 1);
802 HttpResponse resp = new BasicHttpResponse(pv, 202,
804 BasicHttpEntity entity = new BasicHttpEntity();
805 String body = "{\"content\":\"success\",\"message\":\"success\"}";
806 InputStream instream = new ByteArrayInputStream(body.getBytes());
807 entity.setContent(instream);
808 resp.setEntity(entity);
813 E2EServiceInstances instance = new E2EServiceInstances();
814 String request = jsonBody;
815 Response resp = instance.updateE2EServiceInstance(request, "v3", "12345");
816 String respStr = resp.getEntity().toString();
817 assertTrue(respStr.contains("success"));
821 public void updateE2EServiceInstanceTestChkStatusFalse() {
822 new MockUp<RequestsDatabase>() {
824 public OperationStatus getOperationStatusByServiceId(
826 OperationStatus operationStatus = new OperationStatus();
827 operationStatus.setResult("processing");
828 return operationStatus;
832 new MockUp<CatalogDatabase>() {
834 public Service getServiceByModelName(String modelName) {
835 Service svc = new Service();
840 new MockUp<CatalogDatabase>() {
842 public ServiceRecipe getServiceRecipeByModelUUID(String modelUUID,
844 ServiceRecipe rec = new ServiceRecipe();
849 new MockUp<RequestClientFactory>() {
851 public RequestClient getRequestClient(String orchestrationURI,
852 MsoJavaProperties props) throws IllegalStateException {
853 RequestClient client = new CamundaClient();
854 client.setUrl("/test/url");
859 new MockUp<CamundaClient>() {
861 public HttpResponse post(RequestClientParamater requestClientParamater) {
862 ProtocolVersion pv = new ProtocolVersion("HTTP", 1, 1);
863 HttpResponse resp = new BasicHttpResponse(pv, 202,
865 BasicHttpEntity entity = new BasicHttpEntity();
866 String body = "{\"content\":\"success\",\"message\":\"success\"}";
867 InputStream instream = new ByteArrayInputStream(body.getBytes());
868 entity.setContent(instream);
869 resp.setEntity(entity);
874 E2EServiceInstances instance = new E2EServiceInstances();
875 String request = jsonBody;
876 Response resp = instance.updateE2EServiceInstance(request, "v3", "12345");
877 String respStr = resp.getEntity().toString();
878 assertTrue(!respStr.contains("SVC2000"));
882 public void updateE2EServiceInstanceExceptionMsoRequestTest() {
883 new MockUp<RequestsDatabase>() {
885 public OperationStatus getOperationStatusByServiceId(
887 OperationStatus operationStatus = new OperationStatus();
888 operationStatus.setProgress("100");
889 operationStatus.setResult("finish");
890 return operationStatus;
894 new MockUp<CatalogDatabase>() {
896 public Service getServiceByModelName(String modelName) {
897 Service svc = new Service();
902 new MockUp<CatalogDatabase>() {
904 public ServiceRecipe getServiceRecipeByModelUUID(String modelUUID,
906 ServiceRecipe rec = new ServiceRecipe();
911 new MockUp<RequestClientFactory>() {
913 public RequestClient getRequestClient(String orchestrationURI,
914 MsoJavaProperties props) throws IllegalStateException {
915 RequestClient client = new CamundaClient();
916 client.setUrl("/test/url");
921 new MockUp<CamundaClient>() {
923 public HttpResponse post(RequestClientParamater requestClientParamater) {
924 ProtocolVersion pv = new ProtocolVersion("HTTP", 1, 1);
925 HttpResponse resp = new BasicHttpResponse(pv, 202,
927 BasicHttpEntity entity = new BasicHttpEntity();
928 String body = "{\"content\":\"success\",\"message\":\"success\"}";
929 InputStream instream = new ByteArrayInputStream(body.getBytes());
930 entity.setContent(instream);
931 resp.setEntity(entity);
935 MockUp<MsoRequest> msoRequest = new MockUp<MsoRequest>() {
937 void parse (ServiceInstancesRequest sir, HashMap<String,String> instanceIdMap, Action action, String version, String originalRequestJSON) throws ValidationException {
939 throw new ValidationException("mock failure");
942 E2EServiceInstances instance = new E2EServiceInstances();
943 String request = jsonBody;
944 Response resp = instance.updateE2EServiceInstance(request, "v3", "12345");
945 assertEquals(Response.Status.BAD_REQUEST.getStatusCode(), resp.getStatus());
946 msoRequest.tearDown();
950 public void updateE2EServiceInstanceExceptionCatalogDbTest() {
951 new MockUp<RequestsDatabase>() {
953 public OperationStatus getOperationStatusByServiceId(
955 OperationStatus operationStatus = new OperationStatus();
956 operationStatus.setProgress("100");
957 operationStatus.setResult("finish");
958 return operationStatus;
962 MockUp<CatalogDatabase> catalog = new MockUp<CatalogDatabase>() {
964 public Service getServiceByModelName(String modelName) throws Exception {
965 throw new Exception();
969 new MockUp<CatalogDatabase>() {
971 public ServiceRecipe getServiceRecipeByModelUUID(String modelUUID,
973 ServiceRecipe rec = new ServiceRecipe();
978 new MockUp<RequestClientFactory>() {
980 public RequestClient getRequestClient(String orchestrationURI,
981 MsoJavaProperties props) throws IllegalStateException {
982 RequestClient client = new CamundaClient();
983 client.setUrl("/test/url");
988 new MockUp<CamundaClient>() {
990 public HttpResponse post(RequestClientParamater requestClientParamater) {
991 ProtocolVersion pv = new ProtocolVersion("HTTP", 1, 1);
992 HttpResponse resp = new BasicHttpResponse(pv, 202,
994 BasicHttpEntity entity = new BasicHttpEntity();
995 String body = "{\"content\":\"success\",\"message\":\"success\"}";
996 InputStream instream = new ByteArrayInputStream(body.getBytes());
997 entity.setContent(instream);
998 resp.setEntity(entity);
1003 E2EServiceInstances instance = new E2EServiceInstances();
1004 String request = jsonBody;
1005 Response resp = instance.updateE2EServiceInstance(request, "v3", "12345");
1006 assertEquals(Response.Status.NOT_FOUND.getStatusCode(), resp.getStatus());
1011 public void updateE2EServiceInstanceNullServiceTest() {
1012 new MockUp<RequestsDatabase>() {
1014 public OperationStatus getOperationStatusByServiceId(
1016 OperationStatus operationStatus = new OperationStatus();
1017 operationStatus.setProgress("100");
1018 operationStatus.setResult("finish");
1019 return operationStatus;
1023 new MockUp<CatalogDatabase>() {
1025 public Service getServiceByModelName(String modelName) {
1026 Service svc = new Service();
1031 MockUp<CatalogDatabase> catalog = new MockUp<CatalogDatabase>() {
1033 public ServiceRecipe getServiceRecipeByModelUUID(String modelUUID,
1039 new MockUp<RequestClientFactory>() {
1041 public RequestClient getRequestClient(String orchestrationURI,
1042 MsoJavaProperties props) throws IllegalStateException {
1043 RequestClient client = new CamundaClient();
1044 client.setUrl("/test/url");
1049 new MockUp<CamundaClient>() {
1051 public HttpResponse post(RequestClientParamater requestClientParamater) {
1052 ProtocolVersion pv = new ProtocolVersion("HTTP", 1, 1);
1053 HttpResponse resp = new BasicHttpResponse(pv, 202,
1055 BasicHttpEntity entity = new BasicHttpEntity();
1056 String body = "{\"content\":\"success\",\"message\":\"success\"}";
1057 InputStream instream = new ByteArrayInputStream(body.getBytes());
1058 entity.setContent(instream);
1059 resp.setEntity(entity);
1064 E2EServiceInstances instance = new E2EServiceInstances();
1065 String request = jsonBody;
1066 Response resp = instance.updateE2EServiceInstance(request, "v3", "12345");
1067 assertEquals(Response.Status.NOT_FOUND.getStatusCode(), resp.getStatus());
1072 public void updateE2EServiceInstanceRequestClientExceptionTest() {
1073 new MockUp<RequestsDatabase>() {
1075 public OperationStatus getOperationStatusByServiceId(
1077 OperationStatus operationStatus = new OperationStatus();
1078 operationStatus.setProgress("100");
1079 operationStatus.setResult("finish");
1080 return operationStatus;
1084 new MockUp<CatalogDatabase>() {
1086 public Service getServiceByModelName(String modelName) {
1087 Service svc = new Service();
1092 new MockUp<CatalogDatabase>() {
1094 public ServiceRecipe getServiceRecipeByModelUUID(String modelUUID,
1096 ServiceRecipe rec = new ServiceRecipe();
1101 new MockUp<RequestClientFactory>() {
1103 public RequestClient getRequestClient(String orchestrationURI,
1104 MsoJavaProperties props) throws IllegalStateException {
1105 RequestClient client = new CamundaClient();
1106 client.setUrl("/test/url");
1111 MockUp<CamundaClient> client = new MockUp<CamundaClient>() {
1113 public HttpResponse post(RequestClientParamater requestClientParamater) throws Exception {
1114 throw new Exception();
1118 E2EServiceInstances instance = new E2EServiceInstances();
1119 String request = jsonBody;
1120 Response resp = instance.updateE2EServiceInstance(request, "v3", "12345");
1121 assertEquals(Response.Status.BAD_GATEWAY.getStatusCode(), resp.getStatus());
1126 public void compareModelwithTargetVersionBadRequest(){
1128 E2EServiceInstances instance = new E2EServiceInstances();
1129 Response response = instance.compareModelwithTargetVersion("", "12345", "v3");
1131 assertNotNull(response);
1132 assertTrue(response.getEntity().toString().contains("Mapping of request to JSON object failed."));
1136 public void compareModelwithTargetVersionFailedBPMNCall(){
1138 new MockUp<CamundaClient>() {
1140 public HttpResponse post(RequestClientParamater requestClientParamater) throws IOException {
1141 throw new ClientProtocolException();
1145 E2EServiceInstances instance = new E2EServiceInstances();
1146 Response response = instance.compareModelwithTargetVersion(compareModelsRequest, "12345", "v3");
1148 assertNotNull(response);
1149 assertTrue(response.getEntity().toString().contains("Failed calling bpmn"));
1154 public void compareModelwithTargetVersionSuccess(){
1156 new MockUp<CamundaClient>() {
1158 public HttpResponse post(RequestClientParamater requestClientParamater) {
1159 ProtocolVersion pv = new ProtocolVersion("HTTP", 1, 1);
1160 HttpResponse resp = new BasicHttpResponse(pv, 202,
1161 "compareModelwithTargetVersion, test response");
1162 BasicHttpEntity entity = new BasicHttpEntity();
1163 String body = "{\"content\":\"success\",\"message\":\"success\"}";
1164 InputStream instream = new ByteArrayInputStream(body.getBytes());
1165 entity.setContent(instream);
1166 resp.setEntity(entity);
1172 E2EServiceInstances instance = new E2EServiceInstances();
1173 Response response = instance.compareModelwithTargetVersion(compareModelsRequest, "12345", "v3");
1175 assertNotNull(response);
1176 assertTrue(response.getStatus()==202);
1181 public void scaleE2EserviceInstancesTestFailInvalidRequest(@Mocked AbstractSessionFactoryManager sessionFactoryManager,
1182 @Mocked Session session ) {
1184 E2EServiceInstances instance = new E2EServiceInstances();
1185 Response response = instance.scaleE2EServiceInstance(jsonBody, "v3", "12345");
1189 public void scaleE2EserviceInstancesTestNormal() {
1191 final MockUp<MsoRequest> mockMsoRequest = new MockUp<MsoRequest>() {
1193 public void createRequestRecord(Status status, Action action) {
1198 final MockUp<CatalogDatabase> mockCDB = new MockUp<CatalogDatabase>() {
1200 public Service getServiceByModelName(String modelName) {
1201 Service svc = new Service();
1206 public ServiceRecipe getServiceRecipeByModelUUID(String modelUUID,
1208 ServiceRecipe rec = new ServiceRecipe();
1209 rec.setOrchestrationUri("/test/delE2E");
1210 rec.setRecipeTimeout(180);
1215 final MockUp<RequestClientFactory> mockRequestClient = new MockUp<RequestClientFactory>() {
1217 public RequestClient getRequestClient(String orchestrationURI,
1218 MsoJavaProperties props) throws IllegalStateException {
1219 RequestClient client = new CamundaClient();
1220 client.setUrl("/test/url");
1225 final MockUp<CamundaClient> mockCamundaClient = new MockUp<CamundaClient>() {
1227 public HttpResponse post(RequestClientParamater requestClientParamater) {
1228 ProtocolVersion pv = new ProtocolVersion("HTTP", 1, 1);
1229 HttpResponse resp = new BasicHttpResponse(pv, 202,
1231 BasicHttpEntity entity = new BasicHttpEntity();
1232 String body = "{\"content\":\"success\",\"message\":\"success\"}";
1233 InputStream instream = new ByteArrayInputStream(body.getBytes());
1234 entity.setContent(instream);
1235 resp.setEntity(entity);
1240 E2EServiceInstances instance = new E2EServiceInstances();
1241 Response response = instance.scaleE2EServiceInstance(scaleRequest, "v3", "12345");
1242 mockMsoRequest.tearDown();
1244 mockRequestClient.tearDown();
1245 mockCamundaClient.tearDown();
1249 public void scaleE2EserviceInstancesTestFailCamundaClient(@Mocked AbstractSessionFactoryManager sessionFactoryManager,
1250 @Mocked Session session) {
1252 final MockUp<MsoRequest> mockMsoRequest = new MockUp<MsoRequest>() {
1254 public void createRequestRecord(Status status, Action action) {
1259 final MockUp<CatalogDatabase> mockCDB = new MockUp<CatalogDatabase>() {
1261 public Service getServiceByModelName(String modelName) {
1262 Service svc = new Service();
1267 public ServiceRecipe getServiceRecipeByModelUUID(String modelUUID,
1269 ServiceRecipe rec = new ServiceRecipe();
1270 rec.setOrchestrationUri("/test/delE2E");
1271 rec.setRecipeTimeout(180);
1276 final MockUp<RequestClientFactory> mockRequestClient = new MockUp<RequestClientFactory>() {
1278 public RequestClient getRequestClient(String orchestrationURI,
1279 MsoJavaProperties props) throws IllegalStateException {
1280 RequestClient client = new CamundaClient();
1281 client.setUrl("/test/url");
1286 E2EServiceInstances instance = new E2EServiceInstances();
1287 Response response = instance.scaleE2EServiceInstance(scaleRequest, "v3", "12345");
1288 mockMsoRequest.tearDown();
1290 mockRequestClient.tearDown();
1294 public void scaleE2EserviceInstancesTestFailRequestClient(@Mocked AbstractSessionFactoryManager sessionFactoryManager,
1295 @Mocked Session session) {
1297 final MockUp<MsoRequest> mockMsoRequest = new MockUp<MsoRequest>() {
1299 public void createRequestRecord(Status status, Action action) {
1304 final MockUp<CatalogDatabase> mockCDB = new MockUp<CatalogDatabase>() {
1306 public Service getServiceByModelName(String modelName) {
1307 Service svc = new Service();
1312 public ServiceRecipe getServiceRecipeByModelUUID(String modelUUID,
1314 ServiceRecipe rec = new ServiceRecipe();
1315 rec.setOrchestrationUri("/test/delE2E");
1316 rec.setRecipeTimeout(180);
1321 E2EServiceInstances instance = new E2EServiceInstances();
1322 Response response = instance.scaleE2EServiceInstance(scaleRequest, "v3", "12345");
1323 mockMsoRequest.tearDown();