2 * ============LICENSE_START=======================================================
\r
4 * ================================================================================
\r
5 * Copyright (C) 2017 AT&T Intellectual Property. 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.bpmn.infrastructure;
\r
23 import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockPatchGenericVnf;
\r
24 import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockGetGenericVnfsByVnfId;
\r
25 import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockPatchVfModuleId;
\r
26 import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockAAIVfModule;
\r
27 import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockSDNCAdapterVfModule;
\r
28 import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockVNFAdapterRestVfModule;
\r
29 import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockDBUpdateVfModule;
\r
30 import static org.openecomp.mso.bpmn.mock.StubResponseAPPC.MockAppcError;
\r
32 import java.io.IOException;
\r
33 import java.util.HashMap;
\r
34 import java.util.Map;
\r
35 import java.util.UUID;
\r
36 import org.junit.Ignore;
\r
37 import org.camunda.bpm.engine.test.Deployment;
\r
38 import org.junit.Test;
\r
39 import org.openecomp.mso.bpmn.common.WorkflowTest;
\r
40 import org.openecomp.mso.bpmn.common.workflow.service.WorkflowResponse;
\r
41 import org.openecomp.mso.bpmn.mock.FileUtil;
\r
44 * Unit test cases for CreateVfModuleInfra.bpmn
\r
47 public class CreateVfModuleInfraTest extends WorkflowTest {
\r
49 private final CallbackSet callbacks = new CallbackSet();
\r
51 public CreateVfModuleInfraTest() throws IOException {
\r
52 callbacks.put("assign", FileUtil.readResourceFile(
\r
53 "__files/VfModularity/SDNCTopologyAssignCallback.xml"));
\r
54 callbacks.put("query", FileUtil.readResourceFile(
\r
55 "__files/VfModularity/SDNCTopologyQueryCallbackVfModule.xml"));
\r
56 callbacks.put("activate", FileUtil.readResourceFile(
\r
57 "__files/VfModularity/SDNCTopologyActivateCallback.xml"));
\r
58 callbacks.put("vnfCreate", FileUtil.readResourceFile(
\r
59 "__files/VfModularity/VNFAdapterRestCreateCallback.xml"));
\r
64 * Sunny day VID scenario with preloads.
\r
69 @Deployment(resources = {
\r
70 "process/CreateVfModuleInfra.bpmn",
\r
71 "subprocess/BuildingBlock/AppCClient.bpmn",
\r
72 "subprocess/DoCreateVfModule.bpmn",
\r
73 "subprocess/GenericGetVnf.bpmn",
\r
74 "subprocess/SDNCAdapterV1.bpmn",
\r
75 "subprocess/GenericNotificationService.bpmn",
\r
76 "subprocess/VnfAdapterRestV1.bpmn",
\r
77 "subprocess/ConfirmVolumeGroupTenant.bpmn",
\r
78 "subprocess/ConfirmVolumeGroupName.bpmn",
\r
79 "subprocess/CreateAAIVfModule.bpmn",
\r
80 "subprocess/UpdateAAIVfModule.bpmn",
\r
81 "subprocess/UpdateAAIGenericVnf.bpmn",
\r
82 "subprocess/CompleteMsoProcess.bpmn",
\r
83 "subprocess/FalloutHandler.bpmn",
\r
84 "subprocess/BuildingBlock/AppCClient.bpmn"
\r
86 public void sunnyDayVIDWithPreloads() throws Exception {
\r
91 MockGetGenericVnfsByVnfId("skask","__files/AAI/AAI_genericVnfGet.json",200);
\r
92 MockPatchGenericVnf("skask");
\r
93 MockPatchVfModuleId("skask", ".*");
\r
94 MockSDNCAdapterVfModule();
\r
95 MockVNFAdapterRestVfModule();
\r
96 MockDBUpdateVfModule();
\r
99 String businessKey = UUID.randomUUID().toString();
\r
100 String createVfModuleRequest =
\r
101 FileUtil.readResourceFile("__files/CreateVfModule_VID_request.json");
\r
103 Map<String, Object> variables = setupVariablesSunnyDayVID();
\r
105 TestAsyncResponse asyncResponse = invokeAsyncProcess("CreateVfModuleInfra",
\r
106 "v1", businessKey, createVfModuleRequest, variables);
\r
108 WorkflowResponse response = receiveResponse(businessKey, asyncResponse, 10000);
\r
110 String responseBody = response.getContent();
\r
111 System.out.println("Workflow (Synch) Response:\n" + responseBody);
\r
113 injectSDNCCallbacks(callbacks, "assign, query");
\r
114 injectVNFRestCallbacks(callbacks, "vnfCreate");
\r
115 injectSDNCCallbacks(callbacks, "activate");
\r
117 // TODO add appropriate assertions
\r
119 waitForProcessEnd(businessKey, 10000);
\r
120 checkVariable(businessKey, "CreateVfModuleSuccessIndicator", true);
\r
126 * Sunny day VID scenario with no preloads.
\r
128 * @throws Exception
\r
131 @Deployment(resources = {
\r
132 "process/CreateVfModuleInfra.bpmn",
\r
133 "subprocess/BuildingBlock/AppCClient.bpmn",
\r
134 "subprocess/DoCreateVfModule.bpmn",
\r
135 "subprocess/GenericGetVnf.bpmn",
\r
136 "subprocess/SDNCAdapterV1.bpmn",
\r
137 "subprocess/VnfAdapterRestV1.bpmn",
\r
138 "subprocess/ConfirmVolumeGroupTenant.bpmn",
\r
139 "subprocess/GenericNotificationService.bpmn",
\r
140 "subprocess/ConfirmVolumeGroupName.bpmn",
\r
141 "subprocess/CreateAAIVfModule.bpmn",
\r
142 "subprocess/UpdateAAIVfModule.bpmn",
\r
143 "subprocess/UpdateAAIGenericVnf.bpmn",
\r
144 "subprocess/CompleteMsoProcess.bpmn",
\r
145 "subprocess/FalloutHandler.bpmn",
\r
146 "subprocess/BuildingBlock/AppCClient.bpmn"
\r
148 public void sunnyDayVIDNoPreloads() throws Exception {
\r
153 MockGetGenericVnfsByVnfId("skask","__files/AAI/AAI_genericVnfGet.json",200);
\r
154 MockPatchGenericVnf("skask");
\r
155 MockPatchVfModuleId("skask", ".*");
\r
156 MockSDNCAdapterVfModule();
\r
157 MockVNFAdapterRestVfModule();
\r
158 MockDBUpdateVfModule();
\r
161 String businessKey = UUID.randomUUID().toString();
\r
162 String createVfModuleRequest =
\r
163 FileUtil.readResourceFile("__files/CreateVfModule_VID_request_noPreloads.json");
\r
165 Map<String, Object> variables = setupVariablesSunnyDayVID();
\r
167 TestAsyncResponse asyncResponse = invokeAsyncProcess("CreateVfModuleInfra",
\r
168 "v1", businessKey, createVfModuleRequest, variables);
\r
170 WorkflowResponse response = receiveResponse(businessKey, asyncResponse, 10000);
\r
172 String responseBody = response.getContent();
\r
173 System.out.println("Workflow (Synch) Response:\n" + responseBody);
\r
175 injectSDNCCallbacks(callbacks, "assign, query");
\r
176 injectVNFRestCallbacks(callbacks, "vnfCreate");
\r
177 injectSDNCCallbacks(callbacks, "activate");
\r
179 // TODO add appropriate assertions
\r
181 waitForProcessEnd(businessKey, 10000);
\r
182 checkVariable(businessKey, "CreateVfModuleSuccessIndicator", true);
\r
188 private Map<String, Object> setupVariablesSunnyDayVID() {
\r
189 Map<String, Object> variables = new HashMap<>();
\r
191 //variables.put("bpmnRequest", FileUtil.readResourceFile("__files/CreateVfModule_VID_request.json"));
\r
193 //catch (Exception e) {
\r
196 //variables.put("mso-request-id", "testRequestId");
\r
197 variables.put("requestId", "testRequestId");
\r
198 variables.put("isBaseVfModule", false);
\r
199 variables.put("isDebugLogEnabled", "true");
\r
200 variables.put("recipeTimeout", "0");
\r
201 variables.put("requestAction", "CREATE_VF_MODULE");
\r
202 variables.put("serviceInstanceId", "f70e927b-6087-4974-9ef8-c5e4d5847ca4");
\r
203 variables.put("vnfId", "skask");
\r
204 variables.put("vnfType", "vSAMP12");
\r
205 variables.put("vfModuleId", "");
\r
206 variables.put("volumeGroupId", "");
\r
207 variables.put("serviceType", "MOG");
\r
208 variables.put("vfModuleType", "");
\r
214 * Sunny day VID with volume attach scenario.
\r
216 * @throws Exception
\r
220 @Deployment(resources = {
\r
221 "process/CreateVfModuleInfra.bpmn",
\r
222 "subprocess/BuildingBlock/AppCClient.bpmn",
\r
223 "subprocess/DoCreateVfModule.bpmn",
\r
224 "subprocess/GenericGetVnf.bpmn",
\r
225 "subprocess/SDNCAdapterV1.bpmn",
\r
226 "subprocess/VnfAdapterRestV1.bpmn",
\r
227 "subprocess/ConfirmVolumeGroupTenant.bpmn",
\r
228 "subprocess/ConfirmVolumeGroupName.bpmn",
\r
229 "subprocess/CreateAAIVfModule.bpmn",
\r
230 "subprocess/CreateAAIVfModuleVolumeGroup.bpmn",
\r
231 "subprocess/GenericNotificationService.bpmn",
\r
232 "subprocess/UpdateAAIVfModule.bpmn",
\r
233 "subprocess/UpdateAAIGenericVnf.bpmn",
\r
234 "subprocess/CompleteMsoProcess.bpmn",
\r
235 "subprocess/FalloutHandler.bpmn",
\r
236 "subprocess/BuildingBlock/AppCClient.bpmn"
\r
239 public void sunnyDayVIDWithVolumeGroupAttach() throws Exception {
\r
245 MockGetGenericVnfsByVnfId("skask","__files/AAI/AAI_genericVnfGet.json",200);
\r
246 MockPatchGenericVnf("skask");
\r
247 MockPatchVfModuleId("skask", ".*");
\r
248 MockSDNCAdapterVfModule();
\r
249 MockVNFAdapterRestVfModule();
\r
250 MockDBUpdateVfModule();
\r
253 String businessKey = UUID.randomUUID().toString();
\r
254 String createVfModuleRequest =
\r
255 FileUtil.readResourceFile("__files/CreateVfModuleVolumeGroup_VID_request.json");
\r
257 Map<String, Object> variables = setupVariablesSunnyDayVIDWVolumeAttach();
\r
259 TestAsyncResponse asyncResponse = invokeAsyncProcess("CreateVfModuleInfra",
\r
260 "v1", businessKey, createVfModuleRequest, variables);
\r
262 WorkflowResponse response = receiveResponse(businessKey, asyncResponse, 10000);
\r
264 String responseBody = response.getContent();
\r
265 System.out.println("Workflow (Synch) Response:\n" + responseBody);
\r
267 injectSDNCCallbacks(callbacks, "assign, query");
\r
268 injectVNFRestCallbacks(callbacks, "vnfCreate");
\r
269 injectSDNCCallbacks(callbacks, "activate");
\r
271 // TODO add appropriate assertions
\r
273 waitForProcessEnd(businessKey, 10000);
\r
274 checkVariable(businessKey, "CreateVfModuleSuccessIndicator", true);
\r
280 private Map<String, Object> setupVariablesSunnyDayVIDWVolumeAttach() {
\r
281 Map<String, Object> variables = new HashMap<>();
\r
283 // variables.put("bpmnRequest", FileUtil.readResourceFile("__files/CreateVfModule_VID_request.json"));
\r
285 //catch (Exception e) {
\r
288 //variables.put("mso-request-id", "testRequestId");
\r
289 variables.put("requestId", "testRequestId");
\r
290 variables.put("isBaseVfModule", false);
\r
291 variables.put("isDebugLogEnabled", "true");
\r
292 variables.put("recipeTimeout", "0");
\r
293 variables.put("requestAction", "CREATE_VF_MODULE");
\r
294 variables.put("serviceInstanceId", "f70e927b-6087-4974-9ef8-c5e4d5847ca4");
\r
295 variables.put("vnfId", "skask");
\r
296 variables.put("vnfType", "vSAMP12");
\r
297 variables.put("vfModuleId", "");
\r
298 variables.put("volumeGroupId", "78987");
\r
299 variables.put("serviceType", "MOG");
\r
300 variables.put("vfModuleType", "");
\r
305 * Sunny day VID scenario with no preloads.
\r
307 * @throws Exception
\r
310 @Deployment(resources = {
\r
311 "process/CreateVfModuleInfra.bpmn",
\r
312 "subprocess/BuildingBlock/AppCClient.bpmn",
\r
313 "subprocess/DoCreateVfModule.bpmn",
\r
314 "subprocess/GenericGetVnf.bpmn",
\r
315 "subprocess/SDNCAdapterV1.bpmn",
\r
316 "subprocess/VnfAdapterRestV1.bpmn",
\r
317 "subprocess/ConfirmVolumeGroupTenant.bpmn",
\r
318 "subprocess/GenericNotificationService.bpmn",
\r
319 "subprocess/ConfirmVolumeGroupName.bpmn",
\r
320 "subprocess/CreateAAIVfModule.bpmn",
\r
321 "subprocess/UpdateAAIVfModule.bpmn",
\r
322 "subprocess/UpdateAAIGenericVnf.bpmn",
\r
323 "subprocess/CompleteMsoProcess.bpmn",
\r
324 "subprocess/FalloutHandler.bpmn",
\r
325 "subprocess/BuildingBlock/AppCClient.bpmn"
\r
327 public void sunnyDayVIDMultipleUserParamValues() throws Exception {
\r
332 MockGetGenericVnfsByVnfId("skask","__files/AAI/AAI_genericVnfGet.json",200);
\r
333 MockPatchGenericVnf("skask");
\r
334 MockPatchVfModuleId("skask", ".*");
\r
335 MockSDNCAdapterVfModule();
\r
336 MockVNFAdapterRestVfModule();
\r
337 MockDBUpdateVfModule();
\r
340 String businessKey = UUID.randomUUID().toString();
\r
341 String createVfModuleRequest =
\r
342 FileUtil.readResourceFile("__files/CreateVfModule_VID_request_userParam.json");
\r
344 Map<String, Object> variables = setupVariablesSunnyDayVID();
\r
346 TestAsyncResponse asyncResponse = invokeAsyncProcess("CreateVfModuleInfra",
\r
347 "v1", businessKey, createVfModuleRequest, variables);
\r
349 WorkflowResponse response = receiveResponse(businessKey, asyncResponse, 10000);
\r
351 String responseBody = response.getContent();
\r
352 System.out.println("Workflow (Synch) Response:\n" + responseBody);
\r
354 injectSDNCCallbacks(callbacks, "assign, query");
\r
355 injectVNFRestCallbacks(callbacks, "vnfCreate");
\r
356 injectSDNCCallbacks(callbacks, "activate");
\r
358 // TODO add appropriate assertions
\r
360 waitForProcessEnd(businessKey, 10000);
\r
361 checkVariable(businessKey, "CreateVfModuleSuccessIndicator", true);
\r