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.MockGetCloudRegion;
\r
24 import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockGetGenericVnfById;
\r
25 import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockGetGenericVnfByIdWithDepth;
\r
26 import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockGetGenericVnfByIdWithPriority;
\r
27 import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockGetNetworkPolicyfqdn;
\r
28 import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockGetVolumeGroupById;
\r
29 import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockPatchGenericVnf;
\r
30 import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockPatchVfModuleId;
\r
31 import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockPutGenericVnf;
\r
32 import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockPutNetwork;
\r
33 import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockPutVfModuleIdNoResponse;
\r
34 import static org.openecomp.mso.bpmn.mock.StubResponseDatabase.mockUpdateRequestDB;
\r
35 import static org.openecomp.mso.bpmn.mock.StubResponseSDNCAdapter.mockSDNCAdapter;
\r
36 import static org.openecomp.mso.bpmn.mock.StubResponseVNFAdapter.mockVNFPost;
\r
38 import java.io.IOException;
\r
39 import java.util.HashMap;
\r
40 import java.util.Map;
\r
41 import java.util.UUID;
\r
43 import org.camunda.bpm.engine.test.Deployment;
\r
44 import org.junit.Test;
\r
45 import org.openecomp.mso.bpmn.common.WorkflowTest;
\r
46 import org.openecomp.mso.bpmn.common.workflow.service.WorkflowResponse;
\r
47 import org.openecomp.mso.bpmn.mock.FileUtil;
\r
50 * Unit test cases for CreateVfModuleInfra.bpmn
\r
52 public class CreateVfModuleInfraTest extends WorkflowTest {
\r
54 private final CallbackSet callbacks = new CallbackSet();
\r
56 public CreateVfModuleInfraTest() throws IOException {
\r
57 callbacks.put("assign", FileUtil.readResourceFile(
\r
58 "__files/VfModularity/SDNCTopologyAssignCallback.xml"));
\r
59 callbacks.put("query", FileUtil.readResourceFile(
\r
60 "__files/VfModularity/SDNCTopologyQueryCallbackVfModule.xml"));
\r
61 callbacks.put("activate", FileUtil.readResourceFile(
\r
62 "__files/VfModularity/SDNCTopologyActivateCallback.xml"));
\r
63 callbacks.put("vnfCreate", FileUtil.readResourceFile(
\r
64 "__files/VfModularity/VNFAdapterRestCreateCallback.xml"));
\r
69 * Sunny day VID scenario.
\r
74 @Deployment(resources = {
\r
75 "process/CreateVfModuleInfra.bpmn",
\r
76 "subprocess/DoCreateVfModule.bpmn",
\r
77 "subprocess/SDNCAdapterV1.bpmn",
\r
78 "subprocess/VnfAdapterRestV1.bpmn",
\r
79 "subprocess/ConfirmVolumeGroupTenant.bpmn",
\r
80 "subprocess/ConfirmVolumeGroupName.bpmn",
\r
81 "subprocess/CreateAAIVfModule.bpmn",
\r
82 "subprocess/UpdateAAIVfModule.bpmn",
\r
83 "subprocess/UpdateAAIGenericVnf.bpmn",
\r
84 "subprocess/CompleteMsoProcess.bpmn",
\r
85 "subprocess/FalloutHandler.bpmn"
\r
87 public void sunnyDayVID() throws Exception {
\r
91 MockGetGenericVnfByIdWithDepth("skask", 1, "VfModularity/GenericVnf.xml");
\r
92 MockGetGenericVnfByIdWithPriority("skask", ".*", 200, "VfModularity/VfModule-new.xml", 5);
\r
93 MockGetGenericVnfById("skask", "VfModularity/GenericVnf.xml", 200);
\r
94 MockPutVfModuleIdNoResponse("skask", "PCRF", ".*");
\r
95 MockPutNetwork(".*", "VfModularity/AddNetworkPolicy_AAIResponse_Success.xml", 200);
\r
96 MockPutGenericVnf("skask");
\r
97 mockVNFPost("", 202, "skask");
\r
98 mockSDNCAdapter("/SDNCAdapter", "vnf-type>STMTN", 200, "VfModularity/StandardSDNCSynchResponse.xml");
\r
99 mockSDNCAdapter("/SDNCAdapter", "SvcAction>query", 200, "VfModularity/StandardSDNCSynchResponse.xml");
\r
100 mockUpdateRequestDB(200, "Database/DBUpdateResponse.xml");
\r
101 MockPatchGenericVnf("skask");
\r
102 MockPatchVfModuleId("skask", ".*");
\r
104 String businessKey = UUID.randomUUID().toString();
\r
105 String createVfModuleRequest =
\r
106 FileUtil.readResourceFile("__files/CreateVfModule_VID_request.json");
\r
108 Map<String, Object> variables = setupVariablesSunnyDayVID();
\r
110 TestAsyncResponse asyncResponse = invokeAsyncProcess("CreateVfModuleInfra",
\r
111 "v1", businessKey, createVfModuleRequest, variables);
\r
113 WorkflowResponse response = receiveResponse(businessKey, asyncResponse, 10000);
\r
115 String responseBody = response.getResponse();
\r
116 System.out.println("Workflow (Synch) Response:\n" + responseBody);
\r
118 injectSDNCCallbacks(callbacks, "assign, query");
\r
119 injectVNFRestCallbacks(callbacks, "vnfCreate");
\r
120 injectSDNCCallbacks(callbacks, "activate");
\r
122 // TODO add appropriate assertions
\r
124 waitForProcessEnd(businessKey, 10000);
\r
125 checkVariable(businessKey, "CreateVfModuleSuccessIndicator", true);
\r
131 private Map<String, Object> setupVariablesSunnyDayVID() {
\r
132 Map<String, Object> variables = new HashMap<String, Object>();
\r
134 // variables.put("bpmnRequest", FileUtil.readResourceFile("__files/CreateVfModule_VID_request.json"));
\r
136 //catch (Exception e) {
\r
139 //variables.put("mso-request-id", "testRequestId");
\r
140 variables.put("requestId", "testRequestId");
\r
141 variables.put("isBaseVfModule", false);
\r
142 variables.put("isDebugLogEnabled", "true");
\r
143 variables.put("recipeTimeout", "0");
\r
144 variables.put("requestAction", "CREATE_VF_MODULE");
\r
145 variables.put("serviceInstanceId", "f70e927b-6087-4974-9ef8-c5e4d5847ca4");
\r
146 variables.put("vnfId", "skask");
\r
147 variables.put("vnfType", "vSAMP12");
\r
148 variables.put("vfModuleId", "");
\r
149 variables.put("volumeGroupId", "");
\r
150 variables.put("serviceType", "MOG");
\r
151 variables.put("vfModuleType", "");
\r
157 * Sunny day VID with volume attach scenario.
\r
159 * @throws Exception
\r
162 @Deployment(resources = {
\r
163 "process/CreateVfModuleInfra.bpmn",
\r
164 "subprocess/DoCreateVfModule.bpmn",
\r
165 "subprocess/SDNCAdapterV1.bpmn",
\r
166 "subprocess/VnfAdapterRestV1.bpmn",
\r
167 "subprocess/ConfirmVolumeGroupTenant.bpmn",
\r
168 "subprocess/ConfirmVolumeGroupName.bpmn",
\r
169 "subprocess/CreateAAIVfModule.bpmn",
\r
170 "subprocess/CreateAAIVfModuleVolumeGroup.bpmn",
\r
171 "subprocess/UpdateAAIVfModule.bpmn",
\r
172 "subprocess/UpdateAAIGenericVnf.bpmn",
\r
173 "subprocess/CompleteMsoProcess.bpmn",
\r
174 "subprocess/FalloutHandler.bpmn"
\r
176 public void sunnyDayVIDWithVolumeGroupAttach() throws Exception {
\r
180 MockGetVolumeGroupById("AAIAIC25", "78987", "VfModularity/VolumeGroup.xml");
\r
181 MockGetGenericVnfByIdWithDepth("skask", 1, "VfModularity/GenericVnf.xml");
\r
182 MockGetCloudRegion("MDTWNJ21", 200, "CreateNetworkV2/cloudRegion30_AAIResponse_Success.xml");
\r
183 MockGetVolumeGroupById("RDM2WAGPLCP", "78987", "DeleteVfModuleVolumeInfraV1/queryVolumeId_AAIResponse_Success.xml");
\r
184 MockPutVfModuleIdNoResponse("skask", "PCRF", ".*");
\r
185 mockVNFPost("", 202, "skask");
\r
186 MockGetNetworkPolicyfqdn(".*", "VfModularity/QueryNetworkPolicy_AAIResponse_Success.xml", 200);
\r
187 MockPutGenericVnf("skask");
\r
188 MockGetGenericVnfByIdWithPriority("skask", ".*", 200, "VfModularity/VfModule-new.xml", 5);
\r
189 mockSDNCAdapter("/SDNCAdapter", "vnf-type>STMTN", 200, "VfModularity/StandardSDNCSynchResponse.xml");
\r
190 mockSDNCAdapter("/SDNCAdapter", "SvcAction>query", 200, "VfModularity/StandardSDNCSynchResponse.xml");
\r
191 mockVNFPost("", 202, "skask");
\r
192 mockUpdateRequestDB(200, "Database/DBUpdateResponse.xml");
\r
193 MockPatchGenericVnf("skask");
\r
194 MockPatchVfModuleId("skask", ".*");
\r
196 String businessKey = UUID.randomUUID().toString();
\r
197 String createVfModuleRequest =
\r
198 FileUtil.readResourceFile("__files/CreateVfModuleVolumeGroup_VID_request.json");
\r
200 Map<String, Object> variables = setupVariablesSunnyDayVIDWVolumeAttach();
\r
202 TestAsyncResponse asyncResponse = invokeAsyncProcess("CreateVfModuleInfra",
\r
203 "v1", businessKey, createVfModuleRequest, variables);
\r
205 WorkflowResponse response = receiveResponse(businessKey, asyncResponse, 10000);
\r
207 String responseBody = response.getResponse();
\r
208 System.out.println("Workflow (Synch) Response:\n" + responseBody);
\r
210 injectSDNCCallbacks(callbacks, "assign, query");
\r
211 injectVNFRestCallbacks(callbacks, "vnfCreate");
\r
212 injectSDNCCallbacks(callbacks, "activate");
\r
214 // TODO add appropriate assertions
\r
216 waitForProcessEnd(businessKey, 10000);
\r
217 checkVariable(businessKey, "CreateVfModuleSuccessIndicator", true);
\r
223 private Map<String, Object> setupVariablesSunnyDayVIDWVolumeAttach() {
\r
224 Map<String, Object> variables = new HashMap<String, Object>();
\r
226 // variables.put("bpmnRequest", FileUtil.readResourceFile("__files/CreateVfModule_VID_request.json"));
\r
228 //catch (Exception e) {
\r
231 //variables.put("mso-request-id", "testRequestId");
\r
232 variables.put("requestId", "testRequestId");
\r
233 variables.put("isBaseVfModule", false);
\r
234 variables.put("isDebugLogEnabled", "true");
\r
235 variables.put("recipeTimeout", "0");
\r
236 variables.put("requestAction", "CREATE_VF_MODULE");
\r
237 variables.put("serviceInstanceId", "f70e927b-6087-4974-9ef8-c5e4d5847ca4");
\r
238 variables.put("vnfId", "skask");
\r
239 variables.put("vnfType", "vSAMP12");
\r
240 variables.put("vfModuleId", "");
\r
241 variables.put("volumeGroupId", "78987");
\r
242 variables.put("serviceType", "MOG");
\r
243 variables.put("vfModuleType", "");
\r