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.MockGetCloudRegion;
24 import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockGetGenericVnfById;
25 import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockGetGenericVnfByIdWithDepth;
26 import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockGetGenericVnfByIdWithPriority;
27 import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockGetNetworkPolicyfqdn;
28 import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockGetVolumeGroupById;
29 import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockPutGenericVnf;
30 import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockPutNetwork;
31 import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockPutVfModuleIdNoResponse;
32 import static org.openecomp.mso.bpmn.mock.StubResponseDatabase.mockUpdateRequestDB;
33 import static org.openecomp.mso.bpmn.mock.StubResponseSDNCAdapter.mockSDNCAdapter;
34 import static org.openecomp.mso.bpmn.mock.StubResponseVNFAdapter.mockVNFPost;
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.Test;
43 import org.openecomp.mso.bpmn.common.WorkflowTest;
44 import org.openecomp.mso.bpmn.common.workflow.service.WorkflowResponse;
45 import org.openecomp.mso.bpmn.mock.FileUtil;
48 * Unit test cases for CreateVfModuleInfra.bpmn
50 public class CreateVfModuleInfraTest extends WorkflowTest {
52 private final CallbackSet callbacks = new CallbackSet();
54 public CreateVfModuleInfraTest() throws IOException {
55 callbacks.put("assign", FileUtil.readResourceFile(
56 "__files/VfModularity/SDNCTopologyAssignCallback.xml"));
57 callbacks.put("query", FileUtil.readResourceFile(
58 "__files/VfModularity/SDNCTopologyQueryCallbackVfModule.xml"));
59 callbacks.put("activate", FileUtil.readResourceFile(
60 "__files/VfModularity/SDNCTopologyActivateCallback.xml"));
61 callbacks.put("vnfCreate", FileUtil.readResourceFile(
62 "__files/VfModularity/VNFAdapterRestCreateCallback.xml"));
67 * Sunny day VID scenario.
72 @Deployment(resources = {
73 "process/CreateVfModuleInfra.bpmn",
74 "subprocess/DoCreateVfModule.bpmn",
75 "subprocess/SDNCAdapterV1.bpmn",
76 "subprocess/VnfAdapterRestV1.bpmn",
77 "subprocess/ConfirmVolumeGroupTenant.bpmn",
78 "subprocess/ConfirmVolumeGroupName.bpmn",
79 "subprocess/CreateAAIVfModule.bpmn",
80 "subprocess/UpdateAAIVfModule.bpmn",
81 "subprocess/UpdateAAIGenericVnf.bpmn",
82 "subprocess/CompleteMsoProcess.bpmn",
83 "subprocess/FalloutHandler.bpmn"
85 public void sunnyDayVID() throws Exception {
89 MockGetGenericVnfByIdWithDepth("skask", 1, "VfModularity/GenericVnf.xml");
90 MockGetGenericVnfByIdWithPriority("skask", ".*", 200, "VfModularity/VfModule-new.xml", 5);
91 MockGetGenericVnfById("skask", "VfModularity/GenericVnf.xml", 200);
92 MockPutVfModuleIdNoResponse("skask", "PCRF", ".*");
93 MockPutNetwork(".*", "VfModularity/AddNetworkPolicy_AAIResponse_Success.xml", 200);
94 MockPutGenericVnf("skask");
95 mockVNFPost("", 202, "skask");
96 mockSDNCAdapter("/SDNCAdapter", "vnf-type>STMTN", 200, "VfModularity/StandardSDNCSynchResponse.xml");
97 mockSDNCAdapter("/SDNCAdapter", "SvcAction>query", 200, "VfModularity/StandardSDNCSynchResponse.xml");
98 mockUpdateRequestDB(200, "Database/DBUpdateResponse.xml");
100 String businessKey = UUID.randomUUID().toString();
101 String createVfModuleRequest =
102 FileUtil.readResourceFile("__files/CreateVfModule_VID_request.json");
104 Map<String, Object> variables = setupVariablesSunnyDayVID();
106 TestAsyncResponse asyncResponse = invokeAsyncProcess("CreateVfModuleInfra",
107 "v1", businessKey, createVfModuleRequest, variables);
109 WorkflowResponse response = receiveResponse(businessKey, asyncResponse, 10000);
111 String responseBody = response.getResponse();
112 System.out.println("Workflow (Synch) Response:\n" + responseBody);
114 injectSDNCCallbacks(callbacks, "assign, query");
115 injectVNFRestCallbacks(callbacks, "vnfCreate");
116 injectSDNCCallbacks(callbacks, "activate");
118 // TODO add appropriate assertions
120 waitForProcessEnd(businessKey, 10000);
121 checkVariable(businessKey, "CreateVfModuleSuccessIndicator", true);
127 private Map<String, Object> setupVariablesSunnyDayVID() {
128 Map<String, Object> variables = new HashMap<String, Object>();
130 // variables.put("bpmnRequest", FileUtil.readResourceFile("__files/CreateVfModule_VID_request.json"));
132 //catch (Exception e) {
135 //variables.put("mso-request-id", "testRequestId");
136 variables.put("requestId", "testRequestId");
137 variables.put("isBaseVfModule", false);
138 variables.put("isDebugLogEnabled", "true");
139 variables.put("recipeTimeout", "0");
140 variables.put("requestAction", "CREATE_VF_MODULE");
141 variables.put("serviceInstanceId", "f70e927b-6087-4974-9ef8-c5e4d5847ca4");
142 variables.put("vnfId", "skask");
143 variables.put("vnfType", "vSAMP12");
144 variables.put("vfModuleId", "");
145 variables.put("volumeGroupId", "");
146 variables.put("serviceType", "MOG");
147 variables.put("vfModuleType", "");
153 * Sunny day VID with volume attach scenario.
158 @Deployment(resources = {
159 "process/CreateVfModuleInfra.bpmn",
160 "subprocess/DoCreateVfModule.bpmn",
161 "subprocess/SDNCAdapterV1.bpmn",
162 "subprocess/VnfAdapterRestV1.bpmn",
163 "subprocess/ConfirmVolumeGroupTenant.bpmn",
164 "subprocess/ConfirmVolumeGroupName.bpmn",
165 "subprocess/CreateAAIVfModule.bpmn",
166 "subprocess/CreateAAIVfModuleVolumeGroup.bpmn",
167 "subprocess/UpdateAAIVfModule.bpmn",
168 "subprocess/UpdateAAIGenericVnf.bpmn",
169 "subprocess/CompleteMsoProcess.bpmn",
170 "subprocess/FalloutHandler.bpmn"
172 public void sunnyDayVIDWithVolumeGroupAttach() throws Exception {
176 MockGetVolumeGroupById("AAIAIC25", "78987", "VfModularity/VolumeGroup.xml");
177 MockGetGenericVnfByIdWithDepth("skask", 1, "VfModularity/GenericVnf.xml");
178 MockGetCloudRegion("MDTWNJ21", 200, "CreateNetworkV2/cloudRegion30_AAIResponse_Success.xml");
179 MockGetVolumeGroupById("RDM2WAGPLCP", "78987", "DeleteVfModuleVolumeInfraV1/queryVolumeId_AAIResponse_Success.xml");
180 MockPutVfModuleIdNoResponse("skask", "PCRF", ".*");
181 mockVNFPost("", 202, "skask");
182 MockGetNetworkPolicyfqdn(".*", "VfModularity/QueryNetworkPolicy_AAIResponse_Success.xml", 200);
183 MockPutGenericVnf("skask");
184 MockGetGenericVnfByIdWithPriority("skask", ".*", 200, "VfModularity/VfModule-new.xml", 5);
185 mockSDNCAdapter("/SDNCAdapter", "vnf-type>STMTN", 200, "VfModularity/StandardSDNCSynchResponse.xml");
186 mockSDNCAdapter("/SDNCAdapter", "SvcAction>query", 200, "VfModularity/StandardSDNCSynchResponse.xml");
187 mockVNFPost("", 202, "skask");
188 mockUpdateRequestDB(200, "Database/DBUpdateResponse.xml");
190 String businessKey = UUID.randomUUID().toString();
191 String createVfModuleRequest =
192 FileUtil.readResourceFile("__files/CreateVfModuleVolumeGroup_VID_request.json");
194 Map<String, Object> variables = setupVariablesSunnyDayVIDWVolumeAttach();
196 TestAsyncResponse asyncResponse = invokeAsyncProcess("CreateVfModuleInfra",
197 "v1", businessKey, createVfModuleRequest, variables);
199 WorkflowResponse response = receiveResponse(businessKey, asyncResponse, 10000);
201 String responseBody = response.getResponse();
202 System.out.println("Workflow (Synch) Response:\n" + responseBody);
204 injectSDNCCallbacks(callbacks, "assign, query");
205 injectVNFRestCallbacks(callbacks, "vnfCreate");
206 injectSDNCCallbacks(callbacks, "activate");
208 // TODO add appropriate assertions
210 waitForProcessEnd(businessKey, 10000);
211 checkVariable(businessKey, "CreateVfModuleSuccessIndicator", true);
217 private Map<String, Object> setupVariablesSunnyDayVIDWVolumeAttach() {
218 Map<String, Object> variables = new HashMap<String, Object>();
220 // variables.put("bpmnRequest", FileUtil.readResourceFile("__files/CreateVfModule_VID_request.json"));
222 //catch (Exception e) {
225 //variables.put("mso-request-id", "testRequestId");
226 variables.put("requestId", "testRequestId");
227 variables.put("isBaseVfModule", false);
228 variables.put("isDebugLogEnabled", "true");
229 variables.put("recipeTimeout", "0");
230 variables.put("requestAction", "CREATE_VF_MODULE");
231 variables.put("serviceInstanceId", "f70e927b-6087-4974-9ef8-c5e4d5847ca4");
232 variables.put("vnfId", "skask");
233 variables.put("vnfType", "vSAMP12");
234 variables.put("vfModuleId", "");
235 variables.put("volumeGroupId", "78987");
236 variables.put("serviceType", "MOG");
237 variables.put("vfModuleType", "");