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.util.ArrayList;
\r
28 import java.util.Collections;
\r
29 import java.util.List;
\r
31 import javax.ws.rs.core.Response;
\r
33 import org.apache.http.HttpResponse;
\r
34 import org.apache.http.ProtocolVersion;
\r
35 import org.apache.http.entity.BasicHttpEntity;
\r
36 import org.apache.http.message.BasicHttpResponse;
\r
37 import org.hibernate.criterion.Criterion;
\r
38 import org.hibernate.criterion.Order;
\r
39 import org.junit.Test;
\r
40 import org.openecomp.mso.apihandler.common.CamundaClient;
\r
41 import org.openecomp.mso.apihandler.common.RequestClient;
\r
42 import org.openecomp.mso.apihandler.common.RequestClientFactory;
\r
43 import org.openecomp.mso.db.catalog.CatalogDatabase;
\r
44 import org.openecomp.mso.db.catalog.beans.Service;
\r
45 import org.openecomp.mso.db.catalog.beans.ServiceRecipe;
\r
46 import org.openecomp.mso.properties.MsoJavaProperties;
\r
47 import org.openecomp.mso.requestsdb.InfraActiveRequests;
\r
48 import org.openecomp.mso.requestsdb.RequestsDatabase;
\r
51 import mockit.MockUp;
\r
53 public class E2EServiceInstancesTest {
\r
57 public void createE2EServiceInstanceTestSuccess(){
\r
58 new MockUp<RequestsDatabase>() {
\r
60 private List<InfraActiveRequests> executeInfraQuery (List <Criterion> criteria, Order order) {
\r
64 new MockUp<RequestsDatabase>() {
\r
66 public int updateInfraStatus (String requestId, String requestStatus, long progress, String lastModifiedBy) {
\r
70 new MockUp<CatalogDatabase>() {
\r
72 public Service getServiceByModelName (String modelName) {
\r
73 Service svc = new Service();
\r
78 new MockUp<CatalogDatabase>() {
\r
80 public ServiceRecipe getServiceRecipeByModelUUID(String modelUUID, String action) {
\r
81 ServiceRecipe rec = new ServiceRecipe();
\r
86 new MockUp<RequestClientFactory>() {
\r
88 public RequestClient getRequestClient(String orchestrationURI, MsoJavaProperties props) throws IllegalStateException{
\r
89 RequestClient client = new CamundaClient();
\r
90 client.setUrl("/test/url");
\r
95 new MockUp<CamundaClient>() {
\r
97 public HttpResponse post(String requestId, boolean isBaseVfModule,
\r
98 int recipeTimeout, String requestAction, String serviceInstanceId,
\r
99 String vnfId, String vfModuleId, String volumeGroupId, String networkId,
\r
100 String serviceType, String vnfType, String vfModuleType, String networkType,
\r
101 String requestDetails){
\r
102 ProtocolVersion pv = new ProtocolVersion("HTTP",1,1);
\r
103 HttpResponse resp = new BasicHttpResponse(pv,202, "test response");
\r
104 BasicHttpEntity entity = new BasicHttpEntity();
\r
105 String body = "{\"response\":\"success\",\"message\":\"success\"}";
\r
106 InputStream instream = new ByteArrayInputStream(body.getBytes());
\r
107 entity.setContent(instream);
\r
108 resp.setEntity(entity);
\r
113 /*E2EServiceInstances instance = new E2EServiceInstances();
\r
114 String request = "{\"service\":{\"name\":\"E2EService\",\"serviceDefId\":\"37889593\",\"templateId\":\"2000039\",\"parameters\":{\"domainHost\":\"test\"}}}";
\r
115 Response resp = instance.createE2EServiceInstance(request, "v2");
\r
116 assertTrue(resp.getStatus() == 202);*/
\r
120 public void createE2EServiceInstanceTestBpelHTTPException(){
\r
121 new MockUp<RequestsDatabase>() {
\r
123 private List<InfraActiveRequests> executeInfraQuery (List <Criterion> criteria, Order order) {
\r
127 new MockUp<RequestsDatabase>() {
\r
129 public int updateInfraStatus (String requestId, String requestStatus, long progress, String lastModifiedBy) {
\r
133 new MockUp<CatalogDatabase>() {
\r
135 public Service getServiceByModelName (String modelName) {
\r
136 Service svc = new Service();
\r
141 new MockUp<CatalogDatabase>() {
\r
143 public ServiceRecipe getServiceRecipeByModelUUID(String modelUUID, String action) {
\r
144 ServiceRecipe rec = new ServiceRecipe();
\r
149 new MockUp<RequestClientFactory>() {
\r
151 public RequestClient getRequestClient(String orchestrationURI, MsoJavaProperties props) throws IllegalStateException{
\r
152 RequestClient client = new CamundaClient();
\r
153 client.setUrl("/test/url");
\r
158 new MockUp<CamundaClient>() {
\r
160 public HttpResponse post(String requestId, boolean isBaseVfModule,
\r
161 int recipeTimeout, String requestAction, String serviceInstanceId,
\r
162 String vnfId, String vfModuleId, String volumeGroupId, String networkId,
\r
163 String serviceType, String vnfType, String vfModuleType, String networkType,
\r
164 String requestDetails){
\r
165 ProtocolVersion pv = new ProtocolVersion("HTTP",1,1);
\r
166 HttpResponse resp = new BasicHttpResponse(pv,500, "test response");
\r
167 BasicHttpEntity entity = new BasicHttpEntity();
\r
168 String body = "{\"response\":\"success\",\"message\":\"success\"}";
\r
169 InputStream instream = new ByteArrayInputStream(body.getBytes());
\r
170 entity.setContent(instream);
\r
171 resp.setEntity(entity);
\r
176 /*E2EServiceInstances instance = new E2EServiceInstances();
\r
177 String request = "{\"service\":{\"name\":\"E2EService\",\"serviceDefId\":\"37889593\",\"templateId\":\"2000039\",\"parameters\":{\"domainHost\":\"test\"}}}";
\r
178 Response resp = instance.createE2EServiceInstance(request, "v2");
\r
179 String respStr = resp.getEntity().toString();
\r
180 assertTrue(respStr.indexOf("Request Failed due to BPEL error with HTTP Status") != -1);*/
\r
184 public void createE2EServiceInstanceTestBpelHTTPExceptionWithNullREsponseBody(){
\r
185 new MockUp<RequestsDatabase>() {
\r
187 private List<InfraActiveRequests> executeInfraQuery (List <Criterion> criteria, Order order) {
\r
191 new MockUp<RequestsDatabase>() {
\r
193 public int updateInfraStatus (String requestId, String requestStatus, long progress, String lastModifiedBy) {
\r
197 new MockUp<CatalogDatabase>() {
\r
199 public Service getServiceByModelName (String modelName) {
\r
200 Service svc = new Service();
\r
205 new MockUp<CatalogDatabase>() {
\r
207 public ServiceRecipe getServiceRecipeByModelUUID(String modelUUID, String action) {
\r
208 ServiceRecipe rec = new ServiceRecipe();
\r
213 new MockUp<RequestClientFactory>() {
\r
215 public RequestClient getRequestClient(String orchestrationURI, MsoJavaProperties props) throws IllegalStateException{
\r
216 RequestClient client = new CamundaClient();
\r
217 client.setUrl("/test/url");
\r
222 new MockUp<CamundaClient>() {
\r
224 public HttpResponse post(String requestId, boolean isBaseVfModule,
\r
225 int recipeTimeout, String requestAction, String serviceInstanceId,
\r
226 String vnfId, String vfModuleId, String volumeGroupId, String networkId,
\r
227 String serviceType, String vnfType, String vfModuleType, String networkType,
\r
228 String requestDetails){
\r
229 ProtocolVersion pv = new ProtocolVersion("HTTP",1,1);
\r
230 HttpResponse resp = new BasicHttpResponse(pv,500, "test response");
\r
231 BasicHttpEntity entity = new BasicHttpEntity();
\r
232 String body = "{\"response\":\"\",\"message\":\"success\"}";
\r
233 InputStream instream = new ByteArrayInputStream(body.getBytes());
\r
234 entity.setContent(instream);
\r
235 resp.setEntity(entity);
\r
240 /*E2EServiceInstances instance = new E2EServiceInstances();
\r
241 String request = "{\"service\":{\"name\":\"E2EService\",\"serviceDefId\":\"37889593\",\"templateId\":\"2000039\",\"parameters\":{\"domainHost\":\"test\"}}}";
\r
242 Response resp = instance.createE2EServiceInstance(request, "v2");
\r
243 String respStr = resp.getEntity().toString();
\r
244 assertTrue(respStr.indexOf("Request Failed due to BPEL error with HTTP Status") != -1);*/
\r
248 public void createE2EServiceInstanceTestNullBPELResponse(){
\r
249 new MockUp<RequestsDatabase>() {
\r
251 private List<InfraActiveRequests> executeInfraQuery (List <Criterion> criteria, Order order) {
\r
255 new MockUp<CatalogDatabase>() {
\r
257 public Service getServiceByModelName (String modelName) {
\r
258 Service svc = new Service();
\r
263 new MockUp<CatalogDatabase>() {
\r
265 public ServiceRecipe getServiceRecipeByModelUUID(String modelUUID, String action) {
\r
266 ServiceRecipe rec = new ServiceRecipe();
\r
271 new MockUp<RequestClientFactory>() {
\r
273 public RequestClient getRequestClient(String orchestrationURI, MsoJavaProperties props) throws IllegalStateException{
\r
274 RequestClient client = new CamundaClient();
\r
275 client.setUrl("/test/url");
\r
280 new MockUp<CamundaClient>() {
\r
282 public HttpResponse post(String requestId, boolean isBaseVfModule,
\r
283 int recipeTimeout, String requestAction, String serviceInstanceId,
\r
284 String vnfId, String vfModuleId, String volumeGroupId, String networkId,
\r
285 String serviceType, String vnfType, String vfModuleType, String networkType,
\r
286 String requestDetails){
\r
287 HttpResponse resp = null;
\r
292 /*E2EServiceInstances instance = new E2EServiceInstances();
\r
293 String request = "{\"service\":{\"name\":\"E2EService\",\"serviceDefId\":\"37889593\",\"templateId\":\"2000039\",\"parameters\":{\"domainHost\":\"test\"}}}";
\r
294 Response resp = instance.createE2EServiceInstance(request, "v2");
\r
295 String respStr = resp.getEntity().toString();
\r
296 assertTrue(respStr.indexOf("bpelResponse is null") != -1);*/
\r
300 public void createE2EServiceInstanceTestBPMNNullREsponse(){
\r
301 new MockUp<RequestsDatabase>() {
\r
303 private List<InfraActiveRequests> executeInfraQuery (List <Criterion> criteria, Order order) {
\r
307 new MockUp<CatalogDatabase>() {
\r
309 public Service getServiceByModelName (String modelName) {
\r
310 Service svc = new Service();
\r
315 new MockUp<CatalogDatabase>() {
\r
317 public ServiceRecipe getServiceRecipeByModelUUID(String modelUUID, String action) {
\r
318 ServiceRecipe rec = new ServiceRecipe();
\r
323 new MockUp<RequestClientFactory>() {
\r
325 public RequestClient getRequestClient(String orchestrationURI, MsoJavaProperties props) throws IllegalStateException{
\r
326 RequestClient client = new CamundaClient();
\r
327 client.setUrl("/test/url");
\r
332 new MockUp<CamundaClient>() {
\r
334 public HttpResponse post(String camundaReqXML, String requestId,
\r
335 String requestTimeout, String schemaVersion, String serviceInstanceId, String action){
\r
336 HttpResponse resp = null;
\r
341 /* E2EServiceInstances instance = new E2EServiceInstances();
\r
342 String request = "{\"service\":{\"name\":\"E2EService\",\"serviceDefId\":\"37889593\",\"templateId\":\"2000039\",\"parameters\":{\"domainHost\":\"test\"}}}";
\r
343 Response resp = instance.createE2EServiceInstance(request, "v2");
\r
344 String respStr = resp.getEntity().toString();
\r
345 assertTrue(respStr.indexOf("Failed calling bpmn null") != -1);*/
\r
349 public void createE2EServiceInstanceTestNullBpmn(){
\r
350 new MockUp<RequestsDatabase>() {
\r
352 private List<InfraActiveRequests> executeInfraQuery (List <Criterion> criteria, Order order) {
\r
356 new MockUp<CatalogDatabase>() {
\r
358 public Service getServiceByModelName (String modelName) {
\r
359 Service svc = new Service();
\r
364 new MockUp<CatalogDatabase>() {
\r
366 public ServiceRecipe getServiceRecipeByModelUUID(String modelUUID, String action) {
\r
367 ServiceRecipe rec = new ServiceRecipe();
\r
371 /*E2EServiceInstances instance = new E2EServiceInstances();
\r
372 String request = "{\"service\":{\"name\":\"E2EService\",\"serviceDefId\":\"37889593\",\"templateId\":\"2000039\",\"parameters\":{\"domainHost\":\"test\"}}}";
\r
373 Response resp = instance.createE2EServiceInstance(request, "v2");
\r
374 String respStr = resp.getEntity().toString();
\r
375 assertTrue(respStr.indexOf("Failed calling bpmn properties is null") != -1);*/
\r
379 public void createE2EServiceInstanceTestNullReceipe(){
\r
380 new MockUp<RequestsDatabase>() {
\r
382 private List<InfraActiveRequests> executeInfraQuery (List <Criterion> criteria, Order order) {
\r
386 /*E2EServiceInstances instance = new E2EServiceInstances();
\r
387 String request = "{\"service\":{\"name\":\"E2EService\",\"serviceDefId\":\"37889593\",\"templateId\":\"2000039\",\"parameters\":{\"domainHost\":\"test\"}}}";
\r
388 Response resp = instance.createE2EServiceInstance(request, "v2");
\r
389 String respStr = resp.getEntity().toString();
\r
390 assertTrue(respStr.indexOf("Recipe could not be retrieved from catalog DB null") != -1);*/
\r
394 public void createE2EServiceInstanceTestNullDBResponse(){
\r
395 new MockUp<RequestsDatabase>() {
\r
397 private List<InfraActiveRequests> executeInfraQuery (List <Criterion> criteria, Order order) {
\r
401 /*E2EServiceInstances instance = new E2EServiceInstances();
\r
402 String request = "{\"service\":{\"name\":\"e2eservice\",\"serviceDefId\":\"37889593\",\"templateId\":\"2000039\",\"parameters\":{\"domainHost\":\"test\"}}}";
\r
403 Response resp = instance.createE2EServiceInstance(request, "v2");
\r
404 String respStr = resp.getEntity().toString();
\r
405 assertTrue(respStr.indexOf("Recipe does not exist in catalog DB") != -1);*/
\r
409 public void createE2EServiceInstanceTestInvalidRequest(){
\r
410 new MockUp<RequestsDatabase>() {
\r
412 private List<InfraActiveRequests> executeInfraQuery (List <Criterion> criteria, Order order) {
\r
413 List<InfraActiveRequests> activeReqlist = new ArrayList<>();
\r
414 InfraActiveRequests req = new InfraActiveRequests();
\r
415 req.setAaiServiceId("39493992");
\r
417 activeReqlist.add(req);
\r
418 return activeReqlist;
\r
421 /* E2EServiceInstances instance = new E2EServiceInstances();
\r
422 String request = "{\"service\":{\"name\":\"e2eservice\",\"serviceDefId\":\"37889593\",\"templateId\":\"2000039\",\"parameters\":{\"domainHost\":\"test\"}}}";
\r
423 Response resp = instance.createE2EServiceInstance(request, "v2");
\r
424 String respStr = resp.getEntity().toString();
\r
425 assertTrue(respStr.indexOf("The existing request must finish or be cleaned up before proceeding.") != -1);*/
\r
429 public void createE2EServiceInstanceTestEmptyDBQuery(){
\r
430 new MockUp<RequestsDatabase>() {
\r
432 private List<InfraActiveRequests> executeInfraQuery (List <Criterion> criteria, Order order) {
\r
433 return Collections.EMPTY_LIST;
\r
436 /* E2EServiceInstances instance = new E2EServiceInstances();
\r
437 String request = "{\"service\":{\"name\":\"e2eservice\",\"serviceDefId\":\"37889593\",\"templateId\":\"2000039\",\"parameters\":{\"domainHost\":\"test\"}}}";
\r
438 Response resp = instance.createE2EServiceInstance(request, "v2");
\r
439 String respStr = resp.getEntity().toString();
\r
440 assertTrue(respStr.indexOf("Recipe does not exist in catalog DB") != -1);*/
\r
444 public void createE2EServiceInstanceTestDBQueryFail(){
\r
445 /* E2EServiceInstances instance = new E2EServiceInstances();
\r
446 String request = "{\"service\":{\"name\":\"e2eservice\",\"serviceDefId\":\"37889593\",\"templateId\":\"2000039\",\"parameters\":{\"domainHost\":\"test\"}}}";
\r
447 Response resp = instance.createE2EServiceInstance(request, "v2");
\r
448 String respStr = resp.getEntity().toString();
\r
449 assertTrue(respStr.indexOf("SVC2000") != -1);*/
\r
453 public void createE2EServiceInstanceTestForEmptyRequest(){
\r
454 /*E2EServiceInstances instance = new E2EServiceInstances();
\r
455 String request = "";
\r
456 Response resp = instance.createE2EServiceInstance(request, "v2");
\r
457 String respStr = resp.getEntity().toString();
\r
458 assertTrue(respStr.indexOf("Mapping of request to JSON object failed. No content to map to Object due to end of input") != -1);*/
\r
462 public void deleteE2EServiceInstanceTestNormal(){
\r
463 /* E2EServiceInstances instance = new E2EServiceInstances();
\r
464 String request = "{\"service\":{\"name\":\"e2eservice\",\"serviceDefId\":\"37889593\",\"templateId\":\"2000039\",\"parameters\":{\"domainHost\":\"test\"}}}";
\r
465 Response resp = instance.deleteE2EServiceInstance(request, "v2");
\r
466 String respStr = resp.getEntity().toString();
\r
467 assertTrue(respStr.indexOf("SVC2000") != -1);*/
\r