a4d92a9b5b4ccb03dc60589800911a0a2a847418
[so.git] /
1 /*- \r
2  * ============LICENSE_START======================================================= \r
3  * ONAP - SO \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
10  * \r
11  *      http://www.apache.org/licenses/LICENSE-2.0 \r
12  * \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
19  */\r
20 \r
21 package org.openecomp.mso.bpmn.infrastructure;\r
22 \r
23 import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockPatchGenericVnf;\r
24 import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockPatchVfModuleId;\r
25 import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockAAIVfModule;\r
26 import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockSDNCAdapterVfModule;\r
27 import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockVNFAdapterRestVfModule;\r
28 import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockDBUpdateVfModule;\r
29 \r
30 import java.io.IOException;\r
31 import java.util.HashMap;\r
32 import java.util.Map;\r
33 import java.util.UUID;\r
34 \r
35 import org.junit.Ignore;\r
36 import org.camunda.bpm.engine.test.Deployment;\r
37 import org.junit.Test;\r
38 import org.openecomp.mso.bpmn.common.WorkflowTest;\r
39 import org.openecomp.mso.bpmn.common.workflow.service.WorkflowResponse;\r
40 import org.openecomp.mso.bpmn.mock.FileUtil;\r
41 \r
42 /**\r
43  * Unit test cases for CreateVfModuleInfra.bpmn\r
44  */\r
45 public class CreateVfModuleInfraTest extends WorkflowTest {\r
46 \r
47     private final CallbackSet callbacks = new CallbackSet();\r
48 \r
49     public CreateVfModuleInfraTest() throws IOException {\r
50         callbacks.put("assign", FileUtil.readResourceFile(\r
51                 "__files/VfModularity/SDNCTopologyAssignCallback.xml"));\r
52         callbacks.put("query", FileUtil.readResourceFile(\r
53                 "__files/VfModularity/SDNCTopologyQueryCallbackVfModule.xml"));\r
54         callbacks.put("activate", FileUtil.readResourceFile(\r
55                 "__files/VfModularity/SDNCTopologyActivateCallback.xml"));\r
56         callbacks.put("vnfCreate", FileUtil.readResourceFile(\r
57                 "__files/VfModularity/VNFAdapterRestCreateCallback.xml"));\r
58     }\r
59 \r
60 \r
61     /**\r
62      * Sunny day VID scenario with preloads.\r
63      *\r
64      * @throws Exception\r
65      */\r
66     @Test\r
67     @Deployment(resources = {\r
68             "process/CreateVfModuleInfra.bpmn",\r
69             "subprocess/DoCreateVfModule.bpmn",\r
70             "subprocess/GenericGetVnf.bpmn",\r
71             "subprocess/SDNCAdapterV1.bpmn",\r
72             "subprocess/GenericNotificationService.bpmn",\r
73             "subprocess/VnfAdapterRestV1.bpmn",\r
74             "subprocess/ConfirmVolumeGroupTenant.bpmn",\r
75             "subprocess/ConfirmVolumeGroupName.bpmn",\r
76             "subprocess/CreateAAIVfModule.bpmn",\r
77             "subprocess/UpdateAAIVfModule.bpmn",\r
78             "subprocess/UpdateAAIGenericVnf.bpmn",\r
79             "subprocess/CompleteMsoProcess.bpmn",\r
80             "subprocess/FalloutHandler.bpmn"\r
81     })\r
82     public void sunnyDayVIDWithPreloads() throws Exception {\r
83 \r
84         logStart();\r
85 \r
86         MockAAIVfModule();\r
87         MockPatchGenericVnf("skask");\r
88         MockPatchVfModuleId("skask", ".*");\r
89         MockSDNCAdapterVfModule();\r
90         MockVNFAdapterRestVfModule();\r
91         MockDBUpdateVfModule();\r
92 \r
93         String businessKey = UUID.randomUUID().toString();\r
94         String createVfModuleRequest =\r
95                 FileUtil.readResourceFile("__files/CreateVfModule_VID_request.json");\r
96 \r
97         Map<String, Object> variables = setupVariablesSunnyDayVID();\r
98 \r
99         TestAsyncResponse asyncResponse = invokeAsyncProcess("CreateVfModuleInfra",\r
100                 "v1", businessKey, createVfModuleRequest, variables);\r
101 \r
102         WorkflowResponse response = receiveResponse(businessKey, asyncResponse, 10000);\r
103 \r
104         String responseBody = response.getResponse();\r
105         System.out.println("Workflow (Synch) Response:\n" + responseBody);\r
106 \r
107         injectSDNCCallbacks(callbacks, "assign, query");\r
108         injectVNFRestCallbacks(callbacks, "vnfCreate");\r
109         injectSDNCCallbacks(callbacks, "activate");\r
110 \r
111         // TODO add appropriate assertions\r
112 \r
113         waitForProcessEnd(businessKey, 10000);\r
114         checkVariable(businessKey, "CreateVfModuleSuccessIndicator", true);\r
115 \r
116         logEnd();\r
117     }\r
118 \r
119     /**\r
120      * Sunny day VID scenario with no preloads.\r
121      *\r
122      * @throws Exception\r
123      */\r
124     @Test\r
125     @Deployment(resources = {\r
126             "process/CreateVfModuleInfra.bpmn",\r
127             "subprocess/DoCreateVfModule.bpmn",\r
128             "subprocess/GenericGetVnf.bpmn",\r
129             "subprocess/SDNCAdapterV1.bpmn",\r
130             "subprocess/VnfAdapterRestV1.bpmn",\r
131             "subprocess/ConfirmVolumeGroupTenant.bpmn",\r
132             "subprocess/GenericNotificationService.bpmn",\r
133             "subprocess/ConfirmVolumeGroupName.bpmn",\r
134             "subprocess/CreateAAIVfModule.bpmn",\r
135             "subprocess/UpdateAAIVfModule.bpmn",\r
136             "subprocess/UpdateAAIGenericVnf.bpmn",\r
137             "subprocess/CompleteMsoProcess.bpmn",\r
138             "subprocess/FalloutHandler.bpmn"\r
139     })\r
140     public void sunnyDayVIDNoPreloads() throws Exception {\r
141 \r
142         logStart();\r
143 \r
144         MockAAIVfModule();\r
145         MockPatchGenericVnf("skask");\r
146         MockPatchVfModuleId("skask", ".*");\r
147         MockSDNCAdapterVfModule();\r
148         MockVNFAdapterRestVfModule();\r
149         MockDBUpdateVfModule();\r
150 \r
151         String businessKey = UUID.randomUUID().toString();\r
152         String createVfModuleRequest =\r
153                 FileUtil.readResourceFile("__files/CreateVfModule_VID_request_noPreloads.json");\r
154 \r
155         Map<String, Object> variables = setupVariablesSunnyDayVID();\r
156 \r
157         TestAsyncResponse asyncResponse = invokeAsyncProcess("CreateVfModuleInfra",\r
158                 "v1", businessKey, createVfModuleRequest, variables);\r
159 \r
160         WorkflowResponse response = receiveResponse(businessKey, asyncResponse, 10000);\r
161 \r
162         String responseBody = response.getResponse();\r
163         System.out.println("Workflow (Synch) Response:\n" + responseBody);\r
164 \r
165         injectSDNCCallbacks(callbacks, "assign, query");\r
166         injectVNFRestCallbacks(callbacks, "vnfCreate");\r
167         injectSDNCCallbacks(callbacks, "activate");\r
168 \r
169         // TODO add appropriate assertions\r
170 \r
171         waitForProcessEnd(businessKey, 10000);\r
172         checkVariable(businessKey, "CreateVfModuleSuccessIndicator", true);\r
173 \r
174         logEnd();\r
175     }\r
176 \r
177     // Active Scenario\r
178     private Map<String, Object> setupVariablesSunnyDayVID() {\r
179         Map<String, Object> variables = new HashMap<>();\r
180         //try {\r
181         //variables.put("bpmnRequest", FileUtil.readResourceFile("__files/CreateVfModule_VID_request.json"));\r
182         //}\r
183         //catch (Exception e) {\r
184 \r
185         //}\r
186         //variables.put("mso-request-id", "testRequestId");\r
187         variables.put("requestId", "testRequestId");\r
188         variables.put("isBaseVfModule", false);\r
189         variables.put("isDebugLogEnabled", "true");\r
190         variables.put("recipeTimeout", "0");\r
191         variables.put("requestAction", "CREATE_VF_MODULE");\r
192         variables.put("serviceInstanceId", "f70e927b-6087-4974-9ef8-c5e4d5847ca4");\r
193         variables.put("vnfId", "skask");\r
194         variables.put("vnfType", "vSAMP12");\r
195         variables.put("vfModuleId", "");\r
196         variables.put("volumeGroupId", "");\r
197         variables.put("serviceType", "MOG");\r
198         variables.put("vfModuleType", "");\r
199         return variables;\r
200 \r
201     }\r
202 \r
203     /**\r
204      * Sunny day VID with volume attach scenario.\r
205      *\r
206      * @throws Exception\r
207      */\r
208     @Test\r
209     @Ignore\r
210     @Deployment(resources = {\r
211             "process/CreateVfModuleInfra.bpmn",\r
212             "subprocess/DoCreateVfModule.bpmn",\r
213             "subprocess/GenericGetVnf.bpmn",\r
214             "subprocess/SDNCAdapterV1.bpmn",\r
215             "subprocess/VnfAdapterRestV1.bpmn",\r
216             "subprocess/ConfirmVolumeGroupTenant.bpmn",\r
217             "subprocess/ConfirmVolumeGroupName.bpmn",\r
218             "subprocess/CreateAAIVfModule.bpmn",\r
219             "subprocess/CreateAAIVfModuleVolumeGroup.bpmn",\r
220             "subprocess/GenericNotificationService.bpmn",\r
221             "subprocess/UpdateAAIVfModule.bpmn",\r
222             "subprocess/UpdateAAIGenericVnf.bpmn",\r
223             "subprocess/CompleteMsoProcess.bpmn",\r
224             "subprocess/FalloutHandler.bpmn"\r
225     })\r
226 \r
227     public void sunnyDayVIDWithVolumeGroupAttach() throws Exception {\r
228 \r
229         logStart();\r
230 \r
231 \r
232         MockAAIVfModule();\r
233         MockPatchGenericVnf("skask");\r
234         MockPatchVfModuleId("skask", ".*");\r
235         MockSDNCAdapterVfModule();\r
236         MockVNFAdapterRestVfModule();\r
237         MockDBUpdateVfModule();\r
238 \r
239         String businessKey = UUID.randomUUID().toString();\r
240         String createVfModuleRequest =\r
241                 FileUtil.readResourceFile("__files/CreateVfModuleVolumeGroup_VID_request.json");\r
242 \r
243         Map<String, Object> variables = setupVariablesSunnyDayVIDWVolumeAttach();\r
244 \r
245         TestAsyncResponse asyncResponse = invokeAsyncProcess("CreateVfModuleInfra",\r
246                 "v1", businessKey, createVfModuleRequest, variables);\r
247 \r
248         WorkflowResponse response = receiveResponse(businessKey, asyncResponse, 10000);\r
249 \r
250         String responseBody = response.getResponse();\r
251         System.out.println("Workflow (Synch) Response:\n" + responseBody);\r
252 \r
253         injectSDNCCallbacks(callbacks, "assign, query");\r
254         injectVNFRestCallbacks(callbacks, "vnfCreate");\r
255         injectSDNCCallbacks(callbacks, "activate");\r
256 \r
257         // TODO add appropriate assertions\r
258 \r
259         waitForProcessEnd(businessKey, 10000);\r
260         checkVariable(businessKey, "CreateVfModuleSuccessIndicator", true);\r
261 \r
262         logEnd();\r
263     }\r
264 \r
265     // Active Scenario\r
266     private Map<String, Object> setupVariablesSunnyDayVIDWVolumeAttach() {\r
267         Map<String, Object> variables = new HashMap<>();\r
268         //try {\r
269         //      variables.put("bpmnRequest", FileUtil.readResourceFile("__files/CreateVfModule_VID_request.json"));\r
270         //}\r
271         //catch (Exception e) {\r
272 \r
273         //}\r
274         //variables.put("mso-request-id", "testRequestId");\r
275         variables.put("requestId", "testRequestId");\r
276         variables.put("isBaseVfModule", false);\r
277         variables.put("isDebugLogEnabled", "true");\r
278         variables.put("recipeTimeout", "0");\r
279         variables.put("requestAction", "CREATE_VF_MODULE");\r
280         variables.put("serviceInstanceId", "f70e927b-6087-4974-9ef8-c5e4d5847ca4");\r
281         variables.put("vnfId", "skask");\r
282         variables.put("vnfType", "vSAMP12");\r
283         variables.put("vfModuleId", "");\r
284         variables.put("volumeGroupId", "78987");\r
285         variables.put("serviceType", "MOG");\r
286         variables.put("vfModuleType", "");\r
287         return variables;\r
288 \r
289     }\r
290 \r
291 \r
292 }\r