2 * ============LICENSE_START=======================================================
4 * ================================================================================
5 * Copyright (C) 2017 AT&T Intellectual Property. 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.bpmn.infrastructure;
23 import static com.github.tomakehurst.wiremock.client.WireMock.aResponse;
24 import static com.github.tomakehurst.wiremock.client.WireMock.get;
25 import static com.github.tomakehurst.wiremock.client.WireMock.stubFor;
26 import static com.github.tomakehurst.wiremock.client.WireMock.urlMatching;
27 import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockDeleteVolumeGroupById;
28 import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockGetGenericVnfById;
29 import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockGetVolumeGroupByName;
30 import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockNodeQueryServiceInstanceById;
31 import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockPutVolumeGroupById;
32 import static org.openecomp.mso.bpmn.mock.StubResponseDatabase.mockUpdateRequestDB;
33 import static org.openecomp.mso.bpmn.mock.StubResponseVNFAdapter.mockPostVNFVolumeGroup;
34 import static org.openecomp.mso.bpmn.mock.StubResponseVNFAdapter.mockPutVNFVolumeGroupRollback;
36 import java.io.IOException;
37 import java.util.HashMap;
39 import java.util.UUID;
41 import org.camunda.bpm.engine.test.Deployment;
42 import org.junit.Ignore;
43 import org.junit.Test;
44 import org.openecomp.mso.bpmn.common.WorkflowTest;
45 import org.openecomp.mso.bpmn.common.workflow.service.WorkflowResponse;
46 import org.openecomp.mso.bpmn.mock.FileUtil;
47 import org.openecomp.mso.bpmn.mock.StubResponseAAI;
49 public class CreateVfModuleVolumeInfraV1Test extends WorkflowTest {
51 public static final String _prefix = "CVFMODVOL2_";
53 private final CallbackSet callbacks = new CallbackSet();
55 public CreateVfModuleVolumeInfraV1Test() throws IOException {
56 callbacks.put("volumeGroupCreate", FileUtil.readResourceFile(
57 "__files/CreateVfModuleVolumeInfraV1/CreateVfModuleVolumeCallbackResponse.xml"));
58 callbacks.put("volumeGroupDelete", FileUtil.readResourceFile(
59 "__files/DeleteVfModuleVolumeInfraV1/DeleteVfModuleVolumeCallbackResponse.xml"));
60 callbacks.put("volumeGroupException", FileUtil.readResourceFile(
61 "__files/CreateVfModuleVolumeInfraV1/CreateVfModuleCallbackException.xml"));
62 callbacks.put("volumeGroupRollback", FileUtil.readResourceFile(
63 "__files/CreateVfModuleVolumeInfraV1/RollbackVfModuleVolumeCallbackResponse.xml"));
67 * Happy path scenario for VID
68 *****************************/
71 @Deployment(resources = {"process/CreateVfModuleVolumeInfraV1.bpmn",
72 "subprocess/GenericGetService.bpmn",
73 "subprocess/DoCreateVfModuleVolumeV2.bpmn",
74 "subprocess/FalloutHandler.bpmn",
75 "subprocess/CompleteMsoProcess.bpmn",
76 "subprocess/VnfAdapterRestV1.bpmn"})
77 public void TestSuccess() throws Exception {
81 MockNodeQueryServiceInstanceById("test-service-instance-id", "CreateVfModuleVolumeInfraV1/getSIUrlById.xml");
82 MockGetGenericVnfById("/TEST-VNF-ID-0123", "CreateVfModuleVolumeInfraV1/GenericVnf.xml", 200);
83 MockPutVolumeGroupById("AAIAIC25", "TEST-VOLUME-GROUP-ID-0123", "CreateVfModuleVolumeInfraV1/createVfModuleVolume_createVolumeName_AAIResponse_Success.xml", 201);
84 MockGetVolumeGroupByName("AAIAIC25", "MSOTESTVOL101a-vSAMP12_base_vol_module-0", "CreateVfModuleVolumeInfraV1/createVfModuleVolume_queryVolumeName_AAIResponse_Success.xml", 200);
85 MockPutVolumeGroupById("AAIAIC25", "8424bb3c-c3e7-4553-9662-469649ed9379", "CreateVfModuleVolumeInfraV1/createVfModuleVolume_updateVolumeName_AAIResponse_Success.xml", 200);
86 mockPostVNFVolumeGroup(202);
88 String businessKey = UUID.randomUUID().toString();
89 String createVfModuleVolRequest = FileUtil.readResourceFile("__files/CreateVfModuleVolumeInfraV1/createVfModuleVolume_VID_request.json");
91 Map<String, Object> testVariables = new HashMap<>();
92 testVariables.put("requestId", "TEST-REQUEST-ID-0123");
93 testVariables.put("serviceInstanceId", "test-service-instance-id");
94 testVariables.put("vnfId", "TEST-VNF-ID-0123");
95 testVariables.put("test-volume-group-name", "TEST-MSOTESTVOL101a-vSAMP12_base_vol_module-0");
96 testVariables.put("test-volume-group-id", "TEST-VOLUME-GROUP-ID-0123");
98 TestAsyncResponse asyncResponse = invokeAsyncProcess("CreateVfModuleVolumeInfraV1", "v1", businessKey, createVfModuleVolRequest, testVariables);
99 WorkflowResponse response = receiveResponse(businessKey, asyncResponse, 1000000);
101 String responseBody = response.getResponse();
102 System.out.println("Workflow (Synch) Response:\n" + responseBody);
104 injectVNFRestCallbacks(callbacks, "volumeGroupCreate");
106 waitForProcessEnd(businessKey, 100000);
107 checkVariable(businessKey, "CVMVINFRAV1_SuccessIndicator", true);
113 * Fail - trigger rollback
114 *****************************/
117 @Deployment(resources = {"process/CreateVfModuleVolumeInfraV1.bpmn",
118 "subprocess/GenericGetService.bpmn",
119 "subprocess/DoCreateVfModuleVolumeV2.bpmn",
120 "subprocess/DoCreateVfModuleVolumeRollback.bpmn",
121 "subprocess/FalloutHandler.bpmn",
122 "subprocess/CompleteMsoProcess.bpmn",
123 "subprocess/VnfAdapterRestV1.bpmn"})
124 public void TestRollback() throws Exception {
128 MockNodeQueryServiceInstanceById("test-service-instance-id", "CreateVfModuleVolumeInfraV1/getSIUrlById.xml");
129 MockGetGenericVnfById("/TEST-VNF-ID-0123", "CreateVfModuleVolumeInfraV1/GenericVnf.xml", 200);
130 MockPutVolumeGroupById("AAIAIC25", "TEST-VOLUME-GROUP-ID-0123", "CreateVfModuleVolumeInfraV1/createVfModuleVolume_createVolumeName_AAIResponse_Success.xml", 201);
131 mockPostVNFVolumeGroup(202);
132 mockPutVNFVolumeGroupRollback("TEST-VOLUME-GROUP-ID-0123", 202);
133 MockDeleteVolumeGroupById("AAIAIC25", "8424bb3c-c3e7-4553-9662-469649ed9379", "1460134360", 202);
134 StubResponseAAI.MockGetVolumeGroupByName_404("AAIAIC25", "TEST-MSOTESTVOL101a-vSAMP12_base_vol_module-0");
135 StubResponseAAI.MockGetVolumeGroupByName("AAIAIC25", "MSOTESTVOL101a-vSAMP12_base_vol_module-0", "CreateVfModuleVolumeInfraV1/createVfModuleVolume_queryVolumeName_AAIResponse_Success.xml", 200);
136 StubResponseAAI.MockDeleteVolumeGroup("AAIAIC25", "8424bb3c-c3e7-4553-9662-469649ed9379", "1460134360");
138 String businessKey = UUID.randomUUID().toString();
139 String createVfModuleVolRequest = FileUtil.readResourceFile("__files/CreateVfModuleVolumeInfraV1/createVfModuleVolume_VID_request.json");
141 Map<String, Object> testVariables = new HashMap<>();
142 testVariables.put("requestId", "TEST-REQUEST-ID-0123");
143 testVariables.put("serviceInstanceId", "test-service-instance-id");
144 testVariables.put("vnfId", "TEST-VNF-ID-0123");
145 testVariables.put("test-volume-group-name", "TEST-MSOTESTVOL101a-vSAMP12_base_vol_module-0");
146 testVariables.put("test-volume-group-id", "TEST-VOLUME-GROUP-ID-0123");
148 TestAsyncResponse asyncResponse = invokeAsyncProcess("CreateVfModuleVolumeInfraV1", "v1", businessKey, createVfModuleVolRequest, testVariables);
149 WorkflowResponse response = receiveResponse(businessKey, asyncResponse, 1000000);
151 String responseBody = response.getResponse();
152 System.out.println("Workflow (Synch) Response:\n" + responseBody);
154 injectVNFRestCallbacks(callbacks, "volumeGroupCreate");
155 injectVNFRestCallbacks(callbacks, "volumeGroupDelete");
157 waitForProcessEnd(businessKey, 100000);
158 checkVariable(businessKey, "CVMVINFRAV1_SuccessIndicator", false);
164 * Happy path scenario for VID
165 *****************************/
168 @Deployment(resources = {"process/CreateVfModuleVolumeInfraV1.bpmn",
169 "subprocess/GenericGetService.bpmn",
170 "subprocess/DoCreateVfModuleVolumeV1.bpmn",
171 "subprocess/FalloutHandler.bpmn",
172 "subprocess/CompleteMsoProcess.bpmn",
173 "subprocess/VnfAdapterRestV1.bpmn"})
174 public void TestVolumeGroupAlreadyExists() throws Exception {
178 MockGetVolumeGroupByName("AAIAIC25", "TEST-MSOTESTVOL101a-vSAMP12_base_vol_module-0", "CreateVfModuleVolumeInfraV1/createVfModuleVolume_queryVolumeName_AAIResponse_Success.xml", 200);
179 MockGetGenericVnfById("TEST-VNF-ID-0123", "CreateVfModuleVolumeInfraV1/GenericVnf.xml", 200);
180 MockNodeQueryServiceInstanceById("test-service-instance-id", "CreateVfModuleVolumeInfraV1/getSIUrlById.xml");
182 String businessKey = UUID.randomUUID().toString();
183 String createVfModuleVolRequest = FileUtil.readResourceFile("__files/CreateVfModuleVolumeInfraV1/createVfModuleVolume_VID_request.json");
185 Map<String, Object> testVariables = new HashMap<>();
186 testVariables.put("requestId", "TEST-REQUEST-ID-0123");
187 testVariables.put("serviceInstanceId", "test-service-instance-id");
188 testVariables.put("vnfId", "TEST-VNF-ID-0123");
189 testVariables.put("test-volume-group-name", "TEST-MSOTESTVOL101a-vSAMP12_base_vol_module-0");
190 testVariables.put("test-volume-group-id", "TEST-VOLUME-GROUP-ID-0123");
192 TestAsyncResponse asyncResponse = invokeAsyncProcess("CreateVfModuleVolumeInfraV1", "v1", businessKey, createVfModuleVolRequest, testVariables);
193 WorkflowResponse response = receiveResponse(businessKey, asyncResponse, 1000000);
195 String responseBody = response.getResponse();
196 System.out.println("Workflow (Synch) Response:\n" + responseBody);
198 //injectVNFRestCallbacks(callbacks, "volumeGroupCreate");
200 waitForProcessEnd(businessKey, 100000);
201 checkVariable(businessKey, "CVMVINFRAV1_SuccessIndicator", false);
208 *****************************/
211 @Deployment(resources = {"process/CreateVfModuleVolumeInfraV1.bpmn",
212 "subprocess/GenericGetService.bpmn",
213 "subprocess/DoCreateVfModuleVolumeV1.bpmn",
214 "subprocess/FalloutHandler.bpmn",
215 "subprocess/CompleteMsoProcess.bpmn",
216 "subprocess/VnfAdapterRestV1.bpmn"})
217 public void TestVNfCreateFail() throws Exception {
221 MockNodeQueryServiceInstanceById("test-service-instance-id", "CreateVfModuleVolumeInfraV1/getSIUrlById.xml");
222 MockGetGenericVnfById("/TEST-VNF-ID-0123", "CreateVfModuleVolumeInfraV1/GenericVnf.xml", 200);
223 MockPutVolumeGroupById("AAIAIC25", "TEST-VOLUME-GROUP-ID-0123", "CreateVfModuleVolumeInfraV1/createVfModuleVolume_createVolumeName_AAIResponse_Success.xml", 201);
224 MockGetVolumeGroupByName("AAIAIC25", "MSOTESTVOL101a-vSAMP12_base_vol_module-0", "CreateVfModuleVolumeInfraV1/createVfModuleVolume_queryVolumeName_AAIResponse_Success.xml", 200);
225 MockPutVolumeGroupById("AAIAIC25", "8424bb3c-c3e7-4553-9662-469649ed9379", "CreateVfModuleVolumeInfraV1/createVfModuleVolume_updateVolumeName_AAIResponse_Success.xml", 200);
226 mockPostVNFVolumeGroup(202);
227 MockDeleteVolumeGroupById("AAIAIC25", "8424bb3c-c3e7-4553-9662-469649ed9379", "1460134360", 204);
229 String businessKey = UUID.randomUUID().toString();
230 String createVfModuleVolRequest = FileUtil.readResourceFile("__files/CreateVfModuleVolumeInfraV1/createVfModuleVolume_VID_request.json");
232 Map<String, Object> testVariables = new HashMap<>();
233 testVariables.put("requestId", "TEST-REQUEST-ID-0123");
234 testVariables.put("serviceInstanceId", "test-service-instance-id");
235 testVariables.put("vnfId", "TEST-VNF-ID-0123");
236 testVariables.put("test-volume-group-name", "TEST-MSOTESTVOL101a-vSAMP12_base_vol_module-0");
237 testVariables.put("test-volume-group-id", "TEST-VOLUME-GROUP-ID-0123");
239 TestAsyncResponse asyncResponse = invokeAsyncProcess("CreateVfModuleVolumeInfraV1", "v1", businessKey, createVfModuleVolRequest, testVariables);
240 WorkflowResponse response = receiveResponse(businessKey, asyncResponse, 1000000);
242 String responseBody = response.getResponse();
243 System.out.println("Workflow (Synch) Response:\n" + responseBody);
245 injectVNFRestCallbacks(callbacks, "volumeGroupException");
247 waitForProcessEnd(businessKey, 100000);
248 checkVariable(businessKey, "CVMVINFRAV1_SuccessIndicator", false);
255 * Error scenario - vnf not found
256 ********************************/
259 @Deployment(resources = {"process/CreateVfModuleVolumeInfraV1.bpmn",
260 "subprocess/GenericGetService.bpmn",
261 "subprocess/DoCreateVfModuleVolumeV1.bpmn",
262 "subprocess/FalloutHandler.bpmn",
263 "subprocess/CompleteMsoProcess.bpmn",
264 "subprocess/VnfAdapterRestV1.bpmn"})
265 public void TestFailVnfNotFound() throws Exception {
269 MockNodeQueryServiceInstanceById("test-service-instance-id", "CreateVfModuleVolumeInfraV1/getSIUrlById.xml");
271 String businessKey = UUID.randomUUID().toString();
272 String createVfModuleVolRequest = FileUtil.readResourceFile("__files/CreateVfModuleVolumeInfraV1/createVfModuleVolume_VID_request_noreqparm.json");
274 Map<String, Object> testVariables = new HashMap<>();
275 testVariables.put("requestId", "TEST-REQUEST-ID-0123");
276 testVariables.put("serviceInstanceId", "test-service-instance-id");
277 testVariables.put("vnfId", "TEST-VNF-ID-0123");
278 testVariables.put("test-volume-group-name", "TEST-MSOTESTVOL101a-vSAMP12_base_vol_module-0");
280 TestAsyncResponse asyncResponse = invokeAsyncProcess("CreateVfModuleVolumeInfraV1", "v1", businessKey, createVfModuleVolRequest, testVariables);
281 WorkflowResponse response = receiveResponse(businessKey, asyncResponse, 1000000);
283 String responseBody = response.getResponse();
284 System.out.println("Workflow (Synch) Response:\n" + responseBody);
286 //injectVNFRestCallbacks(callbacks, "volumeGroupCreate");
288 waitForProcessEnd(businessKey, 100000);
289 checkVariable(businessKey, "CVMVINFRAV1_SuccessIndicator", false);
295 * Error scenario - error in validation
296 **************************************/
299 @Deployment(resources = {"process/CreateVfModuleVolumeInfraV1.bpmn",
300 "subprocess/GenericGetService.bpmn",
301 "subprocess/DoCreateVfModuleVolumeV1.bpmn",
302 "subprocess/FalloutHandler.bpmn",
303 "subprocess/CompleteMsoProcess.bpmn",
304 "subprocess/VnfAdapterRestV1.bpmn"})
305 public void TestFailNoVnfPassed() throws Exception {
309 mockUpdateRequestDB(200, "Database/DBUpdateResponse.xml");
311 String businessKey = UUID.randomUUID().toString();
312 String createVfModuleVolRequest = FileUtil.readResourceFile("__files/CreateVfModuleVolumeInfraV1/createVfModuleVolume_VID_request.json");
314 Map<String, Object> testVariables = new HashMap<>();
315 testVariables.put("requestId", "TEST-REQUEST-ID-0123");
316 testVariables.put("serviceInstanceId", "test-service-instance-id");
317 //testVariables.put("vnfId", "TEST-VNF-ID-0123");
318 testVariables.put("test-volume-group-name", "TEST-MSOTESTVOL101a-vSAMP12_base_vol_module-0");
320 TestAsyncResponse asyncResponse = invokeAsyncProcess("CreateVfModuleVolumeInfraV1", "v1", businessKey, createVfModuleVolRequest, testVariables);
321 WorkflowResponse response = receiveResponse(businessKey, asyncResponse, 1000000);
323 String responseBody = response.getResponse();
324 System.out.println("Workflow (Synch) Response:\n" + responseBody);
325 waitForProcessEnd(businessKey, 100000);
326 checkVariable(businessKey, "CVMVINFRAV1_SuccessIndicator", false);
332 * Error scenario - service instance not found
333 *********************************************/
336 @Deployment(resources = {"process/CreateVfModuleVolumeInfraV1.bpmn",
337 "subprocess/GenericGetService.bpmn",
338 "subprocess/DoCreateVfModuleVolumeV1.bpmn",
339 "subprocess/FalloutHandler.bpmn",
340 "subprocess/CompleteMsoProcess.bpmn",
341 "subprocess/VnfAdapterRestV1.bpmn"})
342 public void TestFailServiceInstanceNotFound() throws Exception {
346 MockNodeQueryServiceInstanceById("test-service-instance-id", "CreateVfModuleVolumeInfraV1/getSIUrlById.xml");
347 mockUpdateRequestDB(200, "Database/DBUpdateResponse.xml");
349 String businessKey = UUID.randomUUID().toString();
350 String createVfModuleVolRequest = FileUtil.readResourceFile("__files/CreateVfModuleVolumeInfraV1/createVfModuleVolume_VID_request.json");
352 Map<String, Object> testVariables = new HashMap<>();
353 testVariables.put("requestId", "TEST-REQUEST-ID-0123");
354 testVariables.put("serviceInstanceId", "test-service-instance-id");
355 //testVariables.put("vnfId", "TEST-VNF-ID-0123");
356 testVariables.put("test-volume-group-name", "TEST-MSOTESTVOL101a-vSAMP12_base_vol_module-0");
358 TestAsyncResponse asyncResponse = invokeAsyncProcess("CreateVfModuleVolumeInfraV1", "v1", businessKey, createVfModuleVolRequest, testVariables);
359 WorkflowResponse response = receiveResponse(businessKey, asyncResponse, 1000000);
361 String responseBody = response.getResponse();
362 System.out.println("Workflow (Synch) Response:\n" + responseBody);
363 waitForProcessEnd(businessKey, 100000);
364 checkVariable(businessKey, "CVMVINFRAV1_SuccessIndicator", false);