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