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 org.openecomp.mso.bpmn.mock.StubResponseAAI.MockDeleteVolumeGroupById;
24 import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockGetGenericVnfById;
25 import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockGetVolumeGroupByName;
26 import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockNodeQueryServiceInstanceById;
27 import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockPutVolumeGroupById;
28 import static org.openecomp.mso.bpmn.mock.StubResponseDatabase.mockUpdateRequestDB;
29 import static org.openecomp.mso.bpmn.mock.StubResponseVNFAdapter.mockPostVNFVolumeGroup;
31 import java.io.IOException;
32 import java.util.HashMap;
34 import java.util.UUID;
36 import org.camunda.bpm.engine.test.Deployment;
37 import org.junit.Test;
38 import org.openecomp.mso.bpmn.common.WorkflowTest;
39 import org.openecomp.mso.bpmn.common.workflow.service.WorkflowResponse;
40 import org.openecomp.mso.bpmn.mock.FileUtil;
42 public class CreateVfModuleVolumeInfraV1Test extends WorkflowTest {
44 public static final String _prefix = "CVFMODVOL2_";
46 private final CallbackSet callbacks = new CallbackSet();
48 public CreateVfModuleVolumeInfraV1Test() throws IOException {
49 callbacks.put("volumeGroupCreate", FileUtil.readResourceFile(
50 "__files/CreateVfModuleVolumeInfraV1/CreateVfModuleVolumeCallbackResponse.xml"));
51 callbacks.put("volumeGroupException", FileUtil.readResourceFile(
52 "__files/CreateVfModuleVolumeInfraV1/CreateVfModuleCallbackException.xml"));
53 callbacks.put("volumeGroupRollback", FileUtil.readResourceFile(
54 "__files/CreateVfModuleVolumeInfraV1/RollbackVfModuleVolumeCallbackResponse.xml"));
58 * Happy path scenario for VID
59 *****************************/
61 @Deployment(resources = {"process/CreateVfModuleVolumeInfraV1.bpmn",
62 "subprocess/GenericGetService.bpmn",
63 "subprocess/DoCreateVfModuleVolumeV1.bpmn",
64 "subprocess/FalloutHandler.bpmn",
65 "subprocess/CompleteMsoProcess.bpmn",
66 "subprocess/VnfAdapterRestV1.bpmn"})
67 public void TestSuccess() throws Exception {
71 MockNodeQueryServiceInstanceById("test-service-instance-id", "CreateVfModuleVolumeInfraV1/getSIUrlById.xml");
72 MockGetGenericVnfById("/TEST-VNF-ID-0123", "CreateVfModuleVolumeInfraV1/GenericVnf.xml", 200);
73 MockPutVolumeGroupById("AAIAIC25", "TEST-VOLUME-GROUP-ID-0123", "CreateVfModuleVolumeInfraV1/createVfModuleVolume_createVolumeName_AAIResponse_Success.xml", 201);
74 MockGetVolumeGroupByName("AAIAIC25", "MSOTESTVOL101a-vSAMP12_base_vol_module-0", "CreateVfModuleVolumeInfraV1/createVfModuleVolume_queryVolumeName_AAIResponse_Success.xml", 200);
75 MockPutVolumeGroupById("AAIAIC25", "8424bb3c-c3e7-4553-9662-469649ed9379", "CreateVfModuleVolumeInfraV1/createVfModuleVolume_updateVolumeName_AAIResponse_Success.xml", 200);
76 mockPostVNFVolumeGroup(202);
78 String businessKey = UUID.randomUUID().toString();
79 String createVfModuleVolRequest = FileUtil.readResourceFile("__files/CreateVfModuleVolumeInfraV1/createVfModuleVolume_VID_request.json");
81 Map<String, Object> testVariables = new HashMap<String, Object>();
82 testVariables.put("requestId", "TEST-REQUEST-ID-0123");
83 testVariables.put("serviceInstanceId", "test-service-instance-id");
84 testVariables.put("vnfId", "TEST-VNF-ID-0123");
85 testVariables.put("test-volume-group-name", "TEST-MSOTESTVOL101a-vSAMP12_base_vol_module-0");
86 testVariables.put("test-volume-group-id", "TEST-VOLUME-GROUP-ID-0123");
88 TestAsyncResponse asyncResponse = invokeAsyncProcess("CreateVfModuleVolumeInfraV1", "v1", businessKey, createVfModuleVolRequest, testVariables);
89 WorkflowResponse response = receiveResponse(businessKey, asyncResponse, 1000000);
91 String responseBody = response.getResponse();
92 System.out.println("Workflow (Synch) Response:\n" + responseBody);
94 injectVNFRestCallbacks(callbacks, "volumeGroupCreate");
96 waitForProcessEnd(businessKey, 100000);
97 checkVariable(businessKey, "CVMVINFRAV1_SuccessIndicator", true);
103 * Happy path scenario for VID
104 *****************************/
106 @Deployment(resources = {"process/CreateVfModuleVolumeInfraV1.bpmn",
107 "subprocess/GenericGetService.bpmn",
108 "subprocess/DoCreateVfModuleVolumeV1.bpmn",
109 "subprocess/FalloutHandler.bpmn",
110 "subprocess/CompleteMsoProcess.bpmn",
111 "subprocess/VnfAdapterRestV1.bpmn"})
112 public void TestVolumeGroupAlreadyExists() throws Exception {
116 MockGetVolumeGroupByName("AAIAIC25", "TEST-MSOTESTVOL101a-vSAMP12_base_vol_module-0", "CreateVfModuleVolumeInfraV1/createVfModuleVolume_queryVolumeName_AAIResponse_Success.xml", 200);
117 MockGetGenericVnfById("TEST-VNF-ID-0123", "CreateVfModuleVolumeInfraV1/GenericVnf.xml", 200);
118 MockNodeQueryServiceInstanceById("test-service-instance-id", "CreateVfModuleVolumeInfraV1/getSIUrlById.xml");
120 String businessKey = UUID.randomUUID().toString();
121 String createVfModuleVolRequest = FileUtil.readResourceFile("__files/CreateVfModuleVolumeInfraV1/createVfModuleVolume_VID_request.json");
123 Map<String, Object> testVariables = new HashMap<String, Object>();
124 testVariables.put("requestId", "TEST-REQUEST-ID-0123");
125 testVariables.put("serviceInstanceId", "test-service-instance-id");
126 testVariables.put("vnfId", "TEST-VNF-ID-0123");
127 testVariables.put("test-volume-group-name", "TEST-MSOTESTVOL101a-vSAMP12_base_vol_module-0");
128 testVariables.put("test-volume-group-id", "TEST-VOLUME-GROUP-ID-0123");
130 TestAsyncResponse asyncResponse = invokeAsyncProcess("CreateVfModuleVolumeInfraV1", "v1", businessKey, createVfModuleVolRequest, testVariables);
131 WorkflowResponse response = receiveResponse(businessKey, asyncResponse, 1000000);
133 String responseBody = response.getResponse();
134 System.out.println("Workflow (Synch) Response:\n" + responseBody);
136 //injectVNFRestCallbacks(callbacks, "volumeGroupCreate");
138 waitForProcessEnd(businessKey, 100000);
139 checkVariable(businessKey, "CVMVINFRAV1_SuccessIndicator", false);
146 *****************************/
149 @Deployment(resources = {"process/CreateVfModuleVolumeInfraV1.bpmn",
150 "subprocess/GenericGetService.bpmn",
151 "subprocess/DoCreateVfModuleVolumeV1.bpmn",
152 "subprocess/FalloutHandler.bpmn",
153 "subprocess/CompleteMsoProcess.bpmn",
154 "subprocess/VnfAdapterRestV1.bpmn"})
155 public void TestVNfCreateFail() throws Exception {
159 MockNodeQueryServiceInstanceById("test-service-instance-id", "CreateVfModuleVolumeInfraV1/getSIUrlById.xml");
160 MockGetGenericVnfById("/TEST-VNF-ID-0123", "CreateVfModuleVolumeInfraV1/GenericVnf.xml", 200);
161 MockPutVolumeGroupById("AAIAIC25", "TEST-VOLUME-GROUP-ID-0123", "CreateVfModuleVolumeInfraV1/createVfModuleVolume_createVolumeName_AAIResponse_Success.xml", 201);
162 MockGetVolumeGroupByName("AAIAIC25", "MSOTESTVOL101a-vSAMP12_base_vol_module-0", "CreateVfModuleVolumeInfraV1/createVfModuleVolume_queryVolumeName_AAIResponse_Success.xml", 200);
163 MockPutVolumeGroupById("AAIAIC25", "8424bb3c-c3e7-4553-9662-469649ed9379", "CreateVfModuleVolumeInfraV1/createVfModuleVolume_updateVolumeName_AAIResponse_Success.xml", 200);
164 mockPostVNFVolumeGroup(202);
165 MockDeleteVolumeGroupById("AAIAIC25", "8424bb3c-c3e7-4553-9662-469649ed9379", "1460134360", 204);
167 String businessKey = UUID.randomUUID().toString();
168 String createVfModuleVolRequest = FileUtil.readResourceFile("__files/CreateVfModuleVolumeInfraV1/createVfModuleVolume_VID_request.json");
170 Map<String, Object> testVariables = new HashMap<String, Object>();
171 testVariables.put("requestId", "TEST-REQUEST-ID-0123");
172 testVariables.put("serviceInstanceId", "test-service-instance-id");
173 testVariables.put("vnfId", "TEST-VNF-ID-0123");
174 testVariables.put("test-volume-group-name", "TEST-MSOTESTVOL101a-vSAMP12_base_vol_module-0");
175 testVariables.put("test-volume-group-id", "TEST-VOLUME-GROUP-ID-0123");
177 TestAsyncResponse asyncResponse = invokeAsyncProcess("CreateVfModuleVolumeInfraV1", "v1", businessKey, createVfModuleVolRequest, testVariables);
178 WorkflowResponse response = receiveResponse(businessKey, asyncResponse, 1000000);
180 String responseBody = response.getResponse();
181 System.out.println("Workflow (Synch) Response:\n" + responseBody);
183 injectVNFRestCallbacks(callbacks, "volumeGroupException");
185 waitForProcessEnd(businessKey, 100000);
186 checkVariable(businessKey, "CVMVINFRAV1_SuccessIndicator", false);
193 * Error scenario - vnf not found
194 ********************************/
197 @Deployment(resources = {"process/CreateVfModuleVolumeInfraV1.bpmn",
198 "subprocess/GenericGetService.bpmn",
199 "subprocess/DoCreateVfModuleVolumeV1.bpmn",
200 "subprocess/FalloutHandler.bpmn",
201 "subprocess/CompleteMsoProcess.bpmn",
202 "subprocess/VnfAdapterRestV1.bpmn"})
203 public void TestFailVnfNotFound() throws Exception {
207 MockNodeQueryServiceInstanceById("test-service-instance-id", "CreateVfModuleVolumeInfraV1/getSIUrlById.xml");
209 String businessKey = UUID.randomUUID().toString();
210 String createVfModuleVolRequest = FileUtil.readResourceFile("__files/CreateVfModuleVolumeInfraV1/createVfModuleVolume_VID_request_noreqparm.json");
212 Map<String, Object> testVariables = new HashMap<String, Object>();
213 testVariables.put("requestId", "TEST-REQUEST-ID-0123");
214 testVariables.put("serviceInstanceId", "test-service-instance-id");
215 testVariables.put("vnfId", "TEST-VNF-ID-0123");
216 testVariables.put("test-volume-group-name", "TEST-MSOTESTVOL101a-vSAMP12_base_vol_module-0");
218 TestAsyncResponse asyncResponse = invokeAsyncProcess("CreateVfModuleVolumeInfraV1", "v1", businessKey, createVfModuleVolRequest, testVariables);
219 WorkflowResponse response = receiveResponse(businessKey, asyncResponse, 1000000);
221 String responseBody = response.getResponse();
222 System.out.println("Workflow (Synch) Response:\n" + responseBody);
224 //injectVNFRestCallbacks(callbacks, "volumeGroupCreate");
226 waitForProcessEnd(businessKey, 100000);
227 checkVariable(businessKey, "CVMVINFRAV1_SuccessIndicator", false);
233 * Error scenario - error in validation
234 **************************************/
237 @Deployment(resources = {"process/CreateVfModuleVolumeInfraV1.bpmn",
238 "subprocess/GenericGetService.bpmn",
239 "subprocess/DoCreateVfModuleVolumeV1.bpmn",
240 "subprocess/FalloutHandler.bpmn",
241 "subprocess/CompleteMsoProcess.bpmn",
242 "subprocess/VnfAdapterRestV1.bpmn"})
243 public void TestFailNoVnfPassed() throws Exception {
247 mockUpdateRequestDB(200, "Database/DBUpdateResponse.xml");
249 String businessKey = UUID.randomUUID().toString();
250 String createVfModuleVolRequest = FileUtil.readResourceFile("__files/CreateVfModuleVolumeInfraV1/createVfModuleVolume_VID_request.json");
252 Map<String, Object> testVariables = new HashMap<String, Object>();
253 testVariables.put("requestId", "TEST-REQUEST-ID-0123");
254 testVariables.put("serviceInstanceId", "test-service-instance-id");
255 //testVariables.put("vnfId", "TEST-VNF-ID-0123");
256 testVariables.put("test-volume-group-name", "TEST-MSOTESTVOL101a-vSAMP12_base_vol_module-0");
258 TestAsyncResponse asyncResponse = invokeAsyncProcess("CreateVfModuleVolumeInfraV1", "v1", businessKey, createVfModuleVolRequest, testVariables);
259 WorkflowResponse response = receiveResponse(businessKey, asyncResponse, 1000000);
261 String responseBody = response.getResponse();
262 System.out.println("Workflow (Synch) Response:\n" + responseBody);
263 waitForProcessEnd(businessKey, 100000);
264 checkVariable(businessKey, "CVMVINFRAV1_SuccessIndicator", false);
270 * Error scenario - service instance not found
271 *********************************************/
274 @Deployment(resources = {"process/CreateVfModuleVolumeInfraV1.bpmn",
275 "subprocess/GenericGetService.bpmn",
276 "subprocess/DoCreateVfModuleVolumeV1.bpmn",
277 "subprocess/FalloutHandler.bpmn",
278 "subprocess/CompleteMsoProcess.bpmn",
279 "subprocess/VnfAdapterRestV1.bpmn"})
280 public void TestFailServiceInstanceNotFound() throws Exception {
284 MockNodeQueryServiceInstanceById("test-service-instance-id", "CreateVfModuleVolumeInfraV1/getSIUrlById.xml");
285 mockUpdateRequestDB(200, "Database/DBUpdateResponse.xml");
287 String businessKey = UUID.randomUUID().toString();
288 String createVfModuleVolRequest = FileUtil.readResourceFile("__files/CreateVfModuleVolumeInfraV1/createVfModuleVolume_VID_request.json");
290 Map<String, Object> testVariables = new HashMap<String, Object>();
291 testVariables.put("requestId", "TEST-REQUEST-ID-0123");
292 testVariables.put("serviceInstanceId", "test-service-instance-id");
293 //testVariables.put("vnfId", "TEST-VNF-ID-0123");
294 testVariables.put("test-volume-group-name", "TEST-MSOTESTVOL101a-vSAMP12_base_vol_module-0");
296 TestAsyncResponse asyncResponse = invokeAsyncProcess("CreateVfModuleVolumeInfraV1", "v1", businessKey, createVfModuleVolRequest, testVariables);
297 WorkflowResponse response = receiveResponse(businessKey, asyncResponse, 1000000);
299 String responseBody = response.getResponse();
300 System.out.println("Workflow (Synch) Response:\n" + responseBody);
301 waitForProcessEnd(businessKey, 100000);
302 checkVariable(businessKey, "CVMVINFRAV1_SuccessIndicator", false);