de2ae771a5b21c19eb18aed5798a457615849a91
[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 import static org.openecomp.mso.bpmn.mock.StubResponseAPPC.MockAppcError;\r
30 \r
31 import java.io.IOException;\r
32 import java.util.HashMap;\r
33 import java.util.Map;\r
34 import java.util.UUID;\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 @Ignore\r
46 public class CreateVfModuleInfraTest extends WorkflowTest {\r
47         \r
48         private final CallbackSet callbacks = new CallbackSet();\r
49 \r
50         public CreateVfModuleInfraTest() throws IOException {\r
51                 callbacks.put("assign", FileUtil.readResourceFile(\r
52                         "__files/VfModularity/SDNCTopologyAssignCallback.xml"));\r
53                 callbacks.put("query", FileUtil.readResourceFile(\r
54                         "__files/VfModularity/SDNCTopologyQueryCallbackVfModule.xml"));\r
55                 callbacks.put("activate", FileUtil.readResourceFile(\r
56                         "__files/VfModularity/SDNCTopologyActivateCallback.xml"));\r
57                 callbacks.put("vnfCreate", FileUtil.readResourceFile(\r
58                         "__files/VfModularity/VNFAdapterRestCreateCallback.xml"));\r
59         }\r
60         \r
61         \r
62         /**\r
63          * Sunny day VID scenario with preloads.\r
64          * \r
65          * @throws Exception\r
66          */\r
67         @Test   \r
68         @Deployment(resources = {\r
69                         "process/CreateVfModuleInfra.bpmn",\r
70                         "subprocess/BuildingBlock/AppCClient.bpmn",\r
71                         "subprocess/DoCreateVfModule.bpmn",\r
72                         "subprocess/GenericGetVnf.bpmn",\r
73                         "subprocess/SDNCAdapterV1.bpmn",\r
74                         "subprocess/GenericNotificationService.bpmn",\r
75                         "subprocess/VnfAdapterRestV1.bpmn",\r
76                         "subprocess/ConfirmVolumeGroupTenant.bpmn",\r
77                         "subprocess/ConfirmVolumeGroupName.bpmn",\r
78                         "subprocess/CreateAAIVfModule.bpmn",\r
79                         "subprocess/UpdateAAIVfModule.bpmn",\r
80                         "subprocess/UpdateAAIGenericVnf.bpmn",\r
81                         "subprocess/CompleteMsoProcess.bpmn",\r
82                         "subprocess/FalloutHandler.bpmn",\r
83                         "subprocess/BuildingBlock/AppCClient.bpmn"\r
84                 })\r
85         public void sunnyDayVIDWithPreloads() throws Exception {\r
86                                 \r
87                 logStart();\r
88                 \r
89                 MockAAIVfModule();\r
90                 MockPatchGenericVnf("skask");\r
91                 MockPatchVfModuleId("skask", ".*");\r
92                 MockSDNCAdapterVfModule();              \r
93                 MockVNFAdapterRestVfModule();\r
94                 MockDBUpdateVfModule();\r
95                 MockAppcError();\r
96                 \r
97                 String businessKey = UUID.randomUUID().toString();\r
98                 String createVfModuleRequest =\r
99                         FileUtil.readResourceFile("__files/CreateVfModule_VID_request.json");\r
100                 \r
101                 Map<String, Object> variables = setupVariablesSunnyDayVID();            \r
102                 \r
103                 TestAsyncResponse asyncResponse = invokeAsyncProcess("CreateVfModuleInfra",\r
104                         "v1", businessKey, createVfModuleRequest, variables);\r
105                                 \r
106                 WorkflowResponse response = receiveResponse(businessKey, asyncResponse, 10000);\r
107                 \r
108                 String responseBody = response.getResponse();\r
109                 System.out.println("Workflow (Synch) Response:\n" + responseBody);\r
110                 \r
111                 injectSDNCCallbacks(callbacks, "assign, query");\r
112                 injectVNFRestCallbacks(callbacks, "vnfCreate");\r
113                 injectSDNCCallbacks(callbacks, "activate");\r
114                 \r
115                 // TODO add appropriate assertions\r
116 \r
117                 waitForProcessEnd(businessKey, 10000);\r
118                 checkVariable(businessKey, "CreateVfModuleSuccessIndicator", true);\r
119                 \r
120                 logEnd();\r
121         }\r
122         \r
123         /**\r
124          * Sunny day VID scenario with no preloads.\r
125          * \r
126          * @throws Exception\r
127          */\r
128         @Test   \r
129         @Deployment(resources = {\r
130                         "process/CreateVfModuleInfra.bpmn",\r
131                         "subprocess/BuildingBlock/AppCClient.bpmn",\r
132                         "subprocess/DoCreateVfModule.bpmn",\r
133                         "subprocess/GenericGetVnf.bpmn",\r
134                         "subprocess/SDNCAdapterV1.bpmn",\r
135                         "subprocess/VnfAdapterRestV1.bpmn",\r
136                         "subprocess/ConfirmVolumeGroupTenant.bpmn",\r
137                         "subprocess/GenericNotificationService.bpmn",\r
138                         "subprocess/ConfirmVolumeGroupName.bpmn",\r
139                         "subprocess/CreateAAIVfModule.bpmn",\r
140                         "subprocess/UpdateAAIVfModule.bpmn",\r
141                         "subprocess/UpdateAAIGenericVnf.bpmn",\r
142                         "subprocess/CompleteMsoProcess.bpmn",\r
143                         "subprocess/FalloutHandler.bpmn",\r
144                         "subprocess/BuildingBlock/AppCClient.bpmn"\r
145                 })\r
146         public void sunnyDayVIDNoPreloads() throws Exception {\r
147                                 \r
148                 logStart();\r
149                 \r
150                 MockAAIVfModule();\r
151                 MockPatchGenericVnf("skask");\r
152                 MockPatchVfModuleId("skask", ".*");\r
153                 MockSDNCAdapterVfModule();              \r
154                 MockVNFAdapterRestVfModule();\r
155                 MockDBUpdateVfModule();\r
156                 MockAppcError();\r
157                 \r
158                 String businessKey = UUID.randomUUID().toString();\r
159                 String createVfModuleRequest =\r
160                         FileUtil.readResourceFile("__files/CreateVfModule_VID_request_noPreloads.json");\r
161                 \r
162                 Map<String, Object> variables = setupVariablesSunnyDayVID();            \r
163                 \r
164                 TestAsyncResponse asyncResponse = invokeAsyncProcess("CreateVfModuleInfra",\r
165                         "v1", businessKey, createVfModuleRequest, variables);\r
166                                 \r
167                 WorkflowResponse response = receiveResponse(businessKey, asyncResponse, 10000);\r
168                 \r
169                 String responseBody = response.getResponse();\r
170                 System.out.println("Workflow (Synch) Response:\n" + responseBody);\r
171                 \r
172                 injectSDNCCallbacks(callbacks, "assign, query");\r
173                 injectVNFRestCallbacks(callbacks, "vnfCreate");\r
174                 injectSDNCCallbacks(callbacks, "activate");\r
175                 \r
176                 // TODO add appropriate assertions\r
177 \r
178                 waitForProcessEnd(businessKey, 10000);\r
179                 checkVariable(businessKey, "CreateVfModuleSuccessIndicator", true);\r
180                 \r
181                 logEnd();\r
182         }\r
183         \r
184         // Active Scenario\r
185                 private Map<String, Object> setupVariablesSunnyDayVID() {\r
186                         Map<String, Object> variables = new HashMap<>();\r
187                         //try {\r
188                                 //variables.put("bpmnRequest", FileUtil.readResourceFile("__files/CreateVfModule_VID_request.json"));\r
189                         //}\r
190                         //catch (Exception e) {\r
191                                 \r
192                         //}\r
193                         //variables.put("mso-request-id", "testRequestId");\r
194                         variables.put("requestId", "testRequestId");            \r
195                         variables.put("isBaseVfModule", false);\r
196                         variables.put("isDebugLogEnabled", "true");\r
197                         variables.put("recipeTimeout", "0");            \r
198                         variables.put("requestAction", "CREATE_VF_MODULE");\r
199                         variables.put("serviceInstanceId", "f70e927b-6087-4974-9ef8-c5e4d5847ca4");\r
200                         variables.put("vnfId", "skask");\r
201                         variables.put("vnfType", "vSAMP12");\r
202                         variables.put("vfModuleId", "");\r
203                         variables.put("volumeGroupId", "");                     \r
204                         variables.put("serviceType", "MOG");    \r
205                         variables.put("vfModuleType", "");                      \r
206                         return variables;\r
207                         \r
208                 }\r
209                 \r
210                 /**\r
211                  * Sunny day VID with volume attach scenario.\r
212                  * \r
213                  * @throws Exception\r
214                  */\r
215                 @Test\r
216                 @Ignore\r
217                 @Deployment(resources = {\r
218                                 "process/CreateVfModuleInfra.bpmn",\r
219                                 "subprocess/BuildingBlock/AppCClient.bpmn",\r
220                                 "subprocess/DoCreateVfModule.bpmn",\r
221                                 "subprocess/GenericGetVnf.bpmn",\r
222                                 "subprocess/SDNCAdapterV1.bpmn",\r
223                                 "subprocess/VnfAdapterRestV1.bpmn",\r
224                                 "subprocess/ConfirmVolumeGroupTenant.bpmn",\r
225                                 "subprocess/ConfirmVolumeGroupName.bpmn",\r
226                                 "subprocess/CreateAAIVfModule.bpmn",\r
227                                 "subprocess/CreateAAIVfModuleVolumeGroup.bpmn",\r
228                                 "subprocess/GenericNotificationService.bpmn",\r
229                                 "subprocess/UpdateAAIVfModule.bpmn",\r
230                                 "subprocess/UpdateAAIGenericVnf.bpmn",\r
231                                 "subprocess/CompleteMsoProcess.bpmn",\r
232                                 "subprocess/FalloutHandler.bpmn",\r
233                                 "subprocess/BuildingBlock/AppCClient.bpmn"\r
234                         })\r
235                 \r
236                 public void sunnyDayVIDWithVolumeGroupAttach() throws Exception {\r
237                                         \r
238                         logStart();\r
239                         \r
240 \r
241                         MockAAIVfModule();\r
242                         MockPatchGenericVnf("skask");\r
243                         MockPatchVfModuleId("skask", ".*");\r
244                         MockSDNCAdapterVfModule();              \r
245                         MockVNFAdapterRestVfModule();\r
246                         MockDBUpdateVfModule();\r
247                         MockAppcError();\r
248                         \r
249                         String businessKey = UUID.randomUUID().toString();\r
250                         String createVfModuleRequest =\r
251                                 FileUtil.readResourceFile("__files/CreateVfModuleVolumeGroup_VID_request.json");\r
252                         \r
253                         Map<String, Object> variables = setupVariablesSunnyDayVIDWVolumeAttach();\r
254                         \r
255                         TestAsyncResponse asyncResponse = invokeAsyncProcess("CreateVfModuleInfra",\r
256                                 "v1", businessKey, createVfModuleRequest, variables);\r
257                                         \r
258                         WorkflowResponse response = receiveResponse(businessKey, asyncResponse, 10000);\r
259                         \r
260                         String responseBody = response.getResponse();\r
261                         System.out.println("Workflow (Synch) Response:\n" + responseBody);\r
262                         \r
263                         injectSDNCCallbacks(callbacks, "assign, query");\r
264                         injectVNFRestCallbacks(callbacks, "vnfCreate");\r
265                         injectSDNCCallbacks(callbacks, "activate");\r
266                         \r
267                         // TODO add appropriate assertions\r
268 \r
269                         waitForProcessEnd(businessKey, 10000);\r
270                         checkVariable(businessKey, "CreateVfModuleSuccessIndicator", true);\r
271                         \r
272                         logEnd();\r
273                 }\r
274                 \r
275                 // Active Scenario\r
276                         private Map<String, Object> setupVariablesSunnyDayVIDWVolumeAttach() {\r
277                                 Map<String, Object> variables = new HashMap<>();\r
278                                 //try {\r
279                                 //      variables.put("bpmnRequest", FileUtil.readResourceFile("__files/CreateVfModule_VID_request.json"));\r
280                                 //}\r
281                                 //catch (Exception e) {\r
282                                         \r
283                                 //}\r
284                                 //variables.put("mso-request-id", "testRequestId");\r
285                                 variables.put("requestId", "testRequestId");            \r
286                                 variables.put("isBaseVfModule", false);\r
287                                 variables.put("isDebugLogEnabled", "true");\r
288                                 variables.put("recipeTimeout", "0");            \r
289                                 variables.put("requestAction", "CREATE_VF_MODULE");\r
290                                 variables.put("serviceInstanceId", "f70e927b-6087-4974-9ef8-c5e4d5847ca4");\r
291                                 variables.put("vnfId", "skask");\r
292                                 variables.put("vnfType", "vSAMP12");\r
293                                 variables.put("vfModuleId", "");\r
294                                 variables.put("volumeGroupId", "78987");                        \r
295                                 variables.put("serviceType", "MOG");    \r
296                                 variables.put("vfModuleType", "");                      \r
297                                 return variables;\r
298                                 \r
299                         }\r
300                         /**\r
301                          * Sunny day VID scenario with no preloads.\r
302                          * \r
303                          * @throws Exception\r
304                          */\r
305                         @Test   \r
306                         @Deployment(resources = {\r
307                                         "process/CreateVfModuleInfra.bpmn",\r
308                                         "subprocess/BuildingBlock/AppCClient.bpmn",\r
309                                         "subprocess/DoCreateVfModule.bpmn",\r
310                                         "subprocess/GenericGetVnf.bpmn",\r
311                                         "subprocess/SDNCAdapterV1.bpmn",\r
312                                         "subprocess/VnfAdapterRestV1.bpmn",\r
313                                         "subprocess/ConfirmVolumeGroupTenant.bpmn",\r
314                                         "subprocess/GenericNotificationService.bpmn",\r
315                                         "subprocess/ConfirmVolumeGroupName.bpmn",\r
316                                         "subprocess/CreateAAIVfModule.bpmn",\r
317                                         "subprocess/UpdateAAIVfModule.bpmn",\r
318                                         "subprocess/UpdateAAIGenericVnf.bpmn",\r
319                                         "subprocess/CompleteMsoProcess.bpmn",\r
320                                         "subprocess/FalloutHandler.bpmn",\r
321                                         "subprocess/BuildingBlock/AppCClient.bpmn"\r
322                                 })\r
323                         public void sunnyDayVIDMultipleUserParamValues() throws Exception {\r
324                                                 \r
325                                 logStart();\r
326                                 \r
327                                 MockAAIVfModule();\r
328                                 MockPatchGenericVnf("skask");\r
329                                 MockPatchVfModuleId("skask", ".*");\r
330                                 MockSDNCAdapterVfModule();              \r
331                                 MockVNFAdapterRestVfModule();\r
332                                 MockDBUpdateVfModule();\r
333                                 MockAppcError();\r
334                                 \r
335                                 String businessKey = UUID.randomUUID().toString();\r
336                                 String createVfModuleRequest =\r
337                                         FileUtil.readResourceFile("__files/CreateVfModule_VID_request_userParam.json");\r
338                                 \r
339                                 Map<String, Object> variables = setupVariablesSunnyDayVID();            \r
340                                 \r
341                                 TestAsyncResponse asyncResponse = invokeAsyncProcess("CreateVfModuleInfra",\r
342                                         "v1", businessKey, createVfModuleRequest, variables);\r
343                                                 \r
344                                 WorkflowResponse response = receiveResponse(businessKey, asyncResponse, 10000);\r
345                                 \r
346                                 String responseBody = response.getResponse();\r
347                                 System.out.println("Workflow (Synch) Response:\n" + responseBody);\r
348                                 \r
349                                 injectSDNCCallbacks(callbacks, "assign, query");\r
350                                 injectVNFRestCallbacks(callbacks, "vnfCreate");\r
351                                 injectSDNCCallbacks(callbacks, "activate");\r
352                                 \r
353                                 // TODO add appropriate assertions\r
354                                 \r
355                                 waitForProcessEnd(businessKey, 10000);\r
356                                 checkVariable(businessKey, "CreateVfModuleSuccessIndicator", true);\r
357                                 \r
358                                 logEnd();\r
359                         }\r
360                 \r
361         \r
362 }\r