Merge "Reorder modifiers"
[so.git] / bpmn / MSOInfrastructureBPMN / src / test / java / org / openecomp / mso / bpmn / infrastructure / CreateVfModuleInfraTest.java
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.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
31 \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
42 \r
43 /**\r
44  * Unit test cases for CreateVfModuleInfra.bpmn\r
45  */\r
46 @Ignore\r
47 public class CreateVfModuleInfraTest extends WorkflowTest {\r
48         \r
49         private final CallbackSet callbacks = new CallbackSet();\r
50 \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
60         }\r
61         \r
62         \r
63         /**\r
64          * Sunny day VID scenario with preloads.\r
65          * \r
66          * @throws Exception\r
67          */\r
68         @Test   \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
85                 })\r
86         public void sunnyDayVIDWithPreloads() throws Exception {\r
87                                 \r
88                 logStart();\r
89                 \r
90                 MockAAIVfModule();\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
97                 MockAppcError();\r
98                 \r
99                 String businessKey = UUID.randomUUID().toString();\r
100                 String createVfModuleRequest =\r
101                         FileUtil.readResourceFile("__files/CreateVfModule_VID_request.json");\r
102                 \r
103                 Map<String, Object> variables = setupVariablesSunnyDayVID();            \r
104                 \r
105                 TestAsyncResponse asyncResponse = invokeAsyncProcess("CreateVfModuleInfra",\r
106                         "v1", businessKey, createVfModuleRequest, variables);\r
107                                 \r
108                 WorkflowResponse response = receiveResponse(businessKey, asyncResponse, 10000);\r
109                 \r
110                 String responseBody = response.getContent();\r
111                 System.out.println("Workflow (Synch) Response:\n" + responseBody);\r
112                 \r
113                 injectSDNCCallbacks(callbacks, "assign, query");\r
114                 injectVNFRestCallbacks(callbacks, "vnfCreate");\r
115                 injectSDNCCallbacks(callbacks, "activate");\r
116                 \r
117                 // TODO add appropriate assertions\r
118 \r
119                 waitForProcessEnd(businessKey, 10000);\r
120                 checkVariable(businessKey, "CreateVfModuleSuccessIndicator", true);\r
121                 \r
122                 logEnd();\r
123         }\r
124         \r
125         /**\r
126          * Sunny day VID scenario with no preloads.\r
127          * \r
128          * @throws Exception\r
129          */\r
130         @Test   \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
147                 })\r
148         public void sunnyDayVIDNoPreloads() throws Exception {\r
149                                 \r
150                 logStart();\r
151                 \r
152                 MockAAIVfModule();\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
159                 MockAppcError();\r
160                 \r
161                 String businessKey = UUID.randomUUID().toString();\r
162                 String createVfModuleRequest =\r
163                         FileUtil.readResourceFile("__files/CreateVfModule_VID_request_noPreloads.json");\r
164                 \r
165                 Map<String, Object> variables = setupVariablesSunnyDayVID();            \r
166                 \r
167                 TestAsyncResponse asyncResponse = invokeAsyncProcess("CreateVfModuleInfra",\r
168                         "v1", businessKey, createVfModuleRequest, variables);\r
169                                 \r
170                 WorkflowResponse response = receiveResponse(businessKey, asyncResponse, 10000);\r
171                 \r
172                 String responseBody = response.getContent();\r
173                 System.out.println("Workflow (Synch) Response:\n" + responseBody);\r
174                 \r
175                 injectSDNCCallbacks(callbacks, "assign, query");\r
176                 injectVNFRestCallbacks(callbacks, "vnfCreate");\r
177                 injectSDNCCallbacks(callbacks, "activate");\r
178                 \r
179                 // TODO add appropriate assertions\r
180 \r
181                 waitForProcessEnd(businessKey, 10000);\r
182                 checkVariable(businessKey, "CreateVfModuleSuccessIndicator", true);\r
183                 \r
184                 logEnd();\r
185         }\r
186         \r
187         // Active Scenario\r
188                 private Map<String, Object> setupVariablesSunnyDayVID() {\r
189                         Map<String, Object> variables = new HashMap<>();\r
190                         //try {\r
191                                 //variables.put("bpmnRequest", FileUtil.readResourceFile("__files/CreateVfModule_VID_request.json"));\r
192                         //}\r
193                         //catch (Exception e) {\r
194                                 \r
195                         //}\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
209                         return variables;\r
210                         \r
211                 }\r
212                 \r
213                 /**\r
214                  * Sunny day VID with volume attach scenario.\r
215                  * \r
216                  * @throws Exception\r
217                  */\r
218                 @Test\r
219                 @Ignore\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
237                         })\r
238                 \r
239                 public void sunnyDayVIDWithVolumeGroupAttach() throws Exception {\r
240                                         \r
241                         logStart();\r
242                         \r
243 \r
244                         MockAAIVfModule();\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
251                         MockAppcError();\r
252                         \r
253                         String businessKey = UUID.randomUUID().toString();\r
254                         String createVfModuleRequest =\r
255                                 FileUtil.readResourceFile("__files/CreateVfModuleVolumeGroup_VID_request.json");\r
256                         \r
257                         Map<String, Object> variables = setupVariablesSunnyDayVIDWVolumeAttach();\r
258                         \r
259                         TestAsyncResponse asyncResponse = invokeAsyncProcess("CreateVfModuleInfra",\r
260                                 "v1", businessKey, createVfModuleRequest, variables);\r
261                                         \r
262                         WorkflowResponse response = receiveResponse(businessKey, asyncResponse, 10000);\r
263                         \r
264                         String responseBody = response.getContent();\r
265                         System.out.println("Workflow (Synch) Response:\n" + responseBody);\r
266                         \r
267                         injectSDNCCallbacks(callbacks, "assign, query");\r
268                         injectVNFRestCallbacks(callbacks, "vnfCreate");\r
269                         injectSDNCCallbacks(callbacks, "activate");\r
270                         \r
271                         // TODO add appropriate assertions\r
272 \r
273                         waitForProcessEnd(businessKey, 10000);\r
274                         checkVariable(businessKey, "CreateVfModuleSuccessIndicator", true);\r
275                         \r
276                         logEnd();\r
277                 }\r
278                 \r
279                 // Active Scenario\r
280                         private Map<String, Object> setupVariablesSunnyDayVIDWVolumeAttach() {\r
281                                 Map<String, Object> variables = new HashMap<>();\r
282                                 //try {\r
283                                 //      variables.put("bpmnRequest", FileUtil.readResourceFile("__files/CreateVfModule_VID_request.json"));\r
284                                 //}\r
285                                 //catch (Exception e) {\r
286                                         \r
287                                 //}\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
301                                 return variables;\r
302                                 \r
303                         }\r
304                         /**\r
305                          * Sunny day VID scenario with no preloads.\r
306                          * \r
307                          * @throws Exception\r
308                          */\r
309                         @Test   \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
326                                 })\r
327                         public void sunnyDayVIDMultipleUserParamValues() throws Exception {\r
328                                                 \r
329                                 logStart();\r
330                                 \r
331                                 MockAAIVfModule();\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
338                                 MockAppcError();\r
339                                 \r
340                                 String businessKey = UUID.randomUUID().toString();\r
341                                 String createVfModuleRequest =\r
342                                         FileUtil.readResourceFile("__files/CreateVfModule_VID_request_userParam.json");\r
343                                 \r
344                                 Map<String, Object> variables = setupVariablesSunnyDayVID();            \r
345                                 \r
346                                 TestAsyncResponse asyncResponse = invokeAsyncProcess("CreateVfModuleInfra",\r
347                                         "v1", businessKey, createVfModuleRequest, variables);\r
348                                                 \r
349                                 WorkflowResponse response = receiveResponse(businessKey, asyncResponse, 10000);\r
350                                 \r
351                                 String responseBody = response.getContent();\r
352                                 System.out.println("Workflow (Synch) Response:\n" + responseBody);\r
353                                 \r
354                                 injectSDNCCallbacks(callbacks, "assign, query");\r
355                                 injectVNFRestCallbacks(callbacks, "vnfCreate");\r
356                                 injectSDNCCallbacks(callbacks, "activate");\r
357                                 \r
358                                 // TODO add appropriate assertions\r
359                                 \r
360                                 waitForProcessEnd(businessKey, 10000);\r
361                                 checkVariable(businessKey, "CreateVfModuleSuccessIndicator", true);\r
362                                 \r
363                                 logEnd();\r
364                         }\r
365                 \r
366         \r
367 }\r