[MSO-8] Update the maven dependency
[so.git] / bpmn / MSOInfrastructureBPMN / src / test / java / org / openecomp / mso / bpmn / infrastructure / CreateVfModuleVolumeInfraV1Test.java
1 /*- 
2  * ============LICENSE_START======================================================= 
3  * OPENECOMP - MSO 
4  * ================================================================================ 
5  * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. 
6  * ================================================================================ 
7  * Licensed under the Apache License, Version 2.0 (the "License"); 
8  * you may not use this file except in compliance with the License. 
9  * You may obtain a copy of the License at 
10  * 
11  *      http://www.apache.org/licenses/LICENSE-2.0 
12  * 
13  * Unless required by applicable law or agreed to in writing, software 
14  * distributed under the License is distributed on an "AS IS" BASIS, 
15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 
16  * See the License for the specific language governing permissions and 
17  * limitations under the License. 
18  * ============LICENSE_END========================================================= 
19  */ 
20
21 package org.openecomp.mso.bpmn.infrastructure;
22
23 import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockDeleteVolumeGroupById;
24 import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockGetGenericVnfById;
25 import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockGetVolumeGroupByName;
26 import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockNodeQueryServiceInstanceById;
27 import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockPutVolumeGroupById;
28 import static org.openecomp.mso.bpmn.mock.StubResponseDatabase.mockUpdateRequestDB;
29 import static org.openecomp.mso.bpmn.mock.StubResponseVNFAdapter.mockPostVNFVolumeGroup;
30
31 import java.io.IOException;
32 import java.util.HashMap;
33 import java.util.Map;
34 import java.util.UUID;
35
36 import org.camunda.bpm.engine.test.Deployment;
37 import org.junit.Test;
38 import org.openecomp.mso.bpmn.common.WorkflowTest;
39 import org.openecomp.mso.bpmn.common.workflow.service.WorkflowResponse;
40 import org.openecomp.mso.bpmn.mock.FileUtil;
41
42 public class CreateVfModuleVolumeInfraV1Test extends WorkflowTest {
43
44         public static final String _prefix = "CVFMODVOL2_";
45         
46         private final CallbackSet callbacks = new CallbackSet();
47
48         public CreateVfModuleVolumeInfraV1Test() throws IOException {
49                 callbacks.put("volumeGroupCreate", FileUtil.readResourceFile(
50                                 "__files/CreateVfModuleVolumeInfraV1/CreateVfModuleVolumeCallbackResponse.xml"));
51                 callbacks.put("volumeGroupException", FileUtil.readResourceFile(
52                                 "__files/CreateVfModuleVolumeInfraV1/CreateVfModuleCallbackException.xml"));
53                 callbacks.put("volumeGroupRollback", FileUtil.readResourceFile(
54                                 "__files/CreateVfModuleVolumeInfraV1/RollbackVfModuleVolumeCallbackResponse.xml"));
55         }
56         
57         /**
58          * Happy path scenario for VID
59          *****************************/
60         @Test
61         @Deployment(resources = {"process/CreateVfModuleVolumeInfraV1.bpmn",
62                         "subprocess/GenericGetService.bpmn",
63                         "subprocess/DoCreateVfModuleVolumeV1.bpmn",
64             "subprocess/FalloutHandler.bpmn",
65             "subprocess/CompleteMsoProcess.bpmn",
66             "subprocess/VnfAdapterRestV1.bpmn"})
67         public void TestSuccess() throws Exception {
68
69                 logStart();
70                 
71                 MockNodeQueryServiceInstanceById("test-service-instance-id", "CreateVfModuleVolumeInfraV1/getSIUrlById.xml");
72                 MockGetGenericVnfById("/TEST-VNF-ID-0123", "CreateVfModuleVolumeInfraV1/GenericVnf.xml", 200);
73                 MockPutVolumeGroupById("AAIAIC25", "TEST-VOLUME-GROUP-ID-0123", "CreateVfModuleVolumeInfraV1/createVfModuleVolume_createVolumeName_AAIResponse_Success.xml", 201);
74                 MockGetVolumeGroupByName("AAIAIC25", "MSOTESTVOL101a-vSAMP12_base_vol_module-0", "CreateVfModuleVolumeInfraV1/createVfModuleVolume_queryVolumeName_AAIResponse_Success.xml", 200);
75                 MockPutVolumeGroupById("AAIAIC25", "8424bb3c-c3e7-4553-9662-469649ed9379", "CreateVfModuleVolumeInfraV1/createVfModuleVolume_updateVolumeName_AAIResponse_Success.xml", 200);
76                 mockPostVNFVolumeGroup(202);
77
78                 String businessKey = UUID.randomUUID().toString();
79                 String createVfModuleVolRequest = FileUtil.readResourceFile("__files/CreateVfModuleVolumeInfraV1/createVfModuleVolume_VID_request.json");
80                 
81                 Map<String, Object> testVariables = new HashMap<String, Object>();
82                 testVariables.put("requestId", "TEST-REQUEST-ID-0123");
83                 testVariables.put("serviceInstanceId", "test-service-instance-id");
84                 testVariables.put("vnfId", "TEST-VNF-ID-0123");
85                 testVariables.put("test-volume-group-name", "TEST-MSOTESTVOL101a-vSAMP12_base_vol_module-0");
86                 testVariables.put("test-volume-group-id", "TEST-VOLUME-GROUP-ID-0123");
87                                 
88                 TestAsyncResponse asyncResponse = invokeAsyncProcess("CreateVfModuleVolumeInfraV1", "v1", businessKey, createVfModuleVolRequest, testVariables);
89                 WorkflowResponse response = receiveResponse(businessKey, asyncResponse, 1000000);
90
91                 String responseBody = response.getResponse();
92                 System.out.println("Workflow (Synch) Response:\n" + responseBody);
93                 
94                 injectVNFRestCallbacks(callbacks, "volumeGroupCreate");
95                 
96                 waitForProcessEnd(businessKey, 100000);
97                 checkVariable(businessKey, "CVMVINFRAV1_SuccessIndicator", true);
98                 
99                 logEnd();
100         }
101         
102         /**
103          * Happy path scenario for VID
104          *****************************/
105         @Test
106         @Deployment(resources = {"process/CreateVfModuleVolumeInfraV1.bpmn",
107                         "subprocess/GenericGetService.bpmn",
108                         "subprocess/DoCreateVfModuleVolumeV1.bpmn",
109             "subprocess/FalloutHandler.bpmn",
110             "subprocess/CompleteMsoProcess.bpmn",
111             "subprocess/VnfAdapterRestV1.bpmn"})
112         public void TestVolumeGroupAlreadyExists() throws Exception {
113
114                 logStart();
115                 
116                 MockGetVolumeGroupByName("AAIAIC25", "TEST-MSOTESTVOL101a-vSAMP12_base_vol_module-0", "CreateVfModuleVolumeInfraV1/createVfModuleVolume_queryVolumeName_AAIResponse_Success.xml", 200);
117                 MockGetGenericVnfById("TEST-VNF-ID-0123", "CreateVfModuleVolumeInfraV1/GenericVnf.xml", 200);
118                 MockNodeQueryServiceInstanceById("test-service-instance-id", "CreateVfModuleVolumeInfraV1/getSIUrlById.xml");
119
120                 String businessKey = UUID.randomUUID().toString();
121                 String createVfModuleVolRequest = FileUtil.readResourceFile("__files/CreateVfModuleVolumeInfraV1/createVfModuleVolume_VID_request.json");
122                 
123                 Map<String, Object> testVariables = new HashMap<String, Object>();
124                 testVariables.put("requestId", "TEST-REQUEST-ID-0123");
125                 testVariables.put("serviceInstanceId", "test-service-instance-id");
126                 testVariables.put("vnfId", "TEST-VNF-ID-0123");
127                 testVariables.put("test-volume-group-name", "TEST-MSOTESTVOL101a-vSAMP12_base_vol_module-0");
128                 testVariables.put("test-volume-group-id", "TEST-VOLUME-GROUP-ID-0123");
129                                 
130                 TestAsyncResponse asyncResponse = invokeAsyncProcess("CreateVfModuleVolumeInfraV1", "v1", businessKey, createVfModuleVolRequest, testVariables);
131                 WorkflowResponse response = receiveResponse(businessKey, asyncResponse, 1000000);
132
133                 String responseBody = response.getResponse();
134                 System.out.println("Workflow (Synch) Response:\n" + responseBody);
135                 
136                 //injectVNFRestCallbacks(callbacks, "volumeGroupCreate");
137                 
138                 waitForProcessEnd(businessKey, 100000);
139                 checkVariable(businessKey, "CVMVINFRAV1_SuccessIndicator", false);
140                 
141                 logEnd();
142         }
143         
144         /**
145          *Vnf Create fail
146          *****************************/
147         @Test
148         //@Ignore
149         @Deployment(resources = {"process/CreateVfModuleVolumeInfraV1.bpmn",
150                         "subprocess/GenericGetService.bpmn",
151                         "subprocess/DoCreateVfModuleVolumeV1.bpmn",
152             "subprocess/FalloutHandler.bpmn",
153             "subprocess/CompleteMsoProcess.bpmn",
154             "subprocess/VnfAdapterRestV1.bpmn"})
155         public void TestVNfCreateFail() throws Exception {
156
157                 logStart();
158                 
159                 MockNodeQueryServiceInstanceById("test-service-instance-id", "CreateVfModuleVolumeInfraV1/getSIUrlById.xml");
160                 MockGetGenericVnfById("/TEST-VNF-ID-0123", "CreateVfModuleVolumeInfraV1/GenericVnf.xml", 200);
161                 MockPutVolumeGroupById("AAIAIC25", "TEST-VOLUME-GROUP-ID-0123", "CreateVfModuleVolumeInfraV1/createVfModuleVolume_createVolumeName_AAIResponse_Success.xml", 201);
162                 MockGetVolumeGroupByName("AAIAIC25", "MSOTESTVOL101a-vSAMP12_base_vol_module-0", "CreateVfModuleVolumeInfraV1/createVfModuleVolume_queryVolumeName_AAIResponse_Success.xml", 200);
163                 MockPutVolumeGroupById("AAIAIC25", "8424bb3c-c3e7-4553-9662-469649ed9379", "CreateVfModuleVolumeInfraV1/createVfModuleVolume_updateVolumeName_AAIResponse_Success.xml", 200);
164                 mockPostVNFVolumeGroup(202);
165                 MockDeleteVolumeGroupById("AAIAIC25", "8424bb3c-c3e7-4553-9662-469649ed9379", "1460134360", 204);
166
167                 String businessKey = UUID.randomUUID().toString();
168                 String createVfModuleVolRequest = FileUtil.readResourceFile("__files/CreateVfModuleVolumeInfraV1/createVfModuleVolume_VID_request.json");
169                 
170                 Map<String, Object> testVariables = new HashMap<String, Object>();
171                 testVariables.put("requestId", "TEST-REQUEST-ID-0123");
172                 testVariables.put("serviceInstanceId", "test-service-instance-id");
173                 testVariables.put("vnfId", "TEST-VNF-ID-0123");
174                 testVariables.put("test-volume-group-name", "TEST-MSOTESTVOL101a-vSAMP12_base_vol_module-0");
175                 testVariables.put("test-volume-group-id", "TEST-VOLUME-GROUP-ID-0123");
176                                 
177                 TestAsyncResponse asyncResponse = invokeAsyncProcess("CreateVfModuleVolumeInfraV1", "v1", businessKey, createVfModuleVolRequest, testVariables);
178                 WorkflowResponse response = receiveResponse(businessKey, asyncResponse, 1000000);
179
180                 String responseBody = response.getResponse();
181                 System.out.println("Workflow (Synch) Response:\n" + responseBody);
182                 
183                 injectVNFRestCallbacks(callbacks, "volumeGroupException");
184                 
185                 waitForProcessEnd(businessKey, 100000);
186                 checkVariable(businessKey, "CVMVINFRAV1_SuccessIndicator", false);
187                 
188                 logEnd();
189         }
190         
191
192         /**
193          * Error scenario - vnf not found
194          ********************************/
195         @Test
196         //@Ignore
197         @Deployment(resources = {"process/CreateVfModuleVolumeInfraV1.bpmn",
198                         "subprocess/GenericGetService.bpmn",
199                         "subprocess/DoCreateVfModuleVolumeV1.bpmn",
200             "subprocess/FalloutHandler.bpmn",
201             "subprocess/CompleteMsoProcess.bpmn",
202             "subprocess/VnfAdapterRestV1.bpmn"})
203         public void TestFailVnfNotFound() throws Exception {
204
205                 logStart();
206                 
207                 MockNodeQueryServiceInstanceById("test-service-instance-id", "CreateVfModuleVolumeInfraV1/getSIUrlById.xml");
208
209                 String businessKey = UUID.randomUUID().toString();
210                 String createVfModuleVolRequest = FileUtil.readResourceFile("__files/CreateVfModuleVolumeInfraV1/createVfModuleVolume_VID_request_noreqparm.json");
211                 
212                 Map<String, Object> testVariables = new HashMap<String, Object>();
213                 testVariables.put("requestId", "TEST-REQUEST-ID-0123");
214                 testVariables.put("serviceInstanceId", "test-service-instance-id");
215                 testVariables.put("vnfId", "TEST-VNF-ID-0123");
216                 testVariables.put("test-volume-group-name", "TEST-MSOTESTVOL101a-vSAMP12_base_vol_module-0");
217                                 
218                 TestAsyncResponse asyncResponse = invokeAsyncProcess("CreateVfModuleVolumeInfraV1", "v1", businessKey, createVfModuleVolRequest, testVariables);
219                 WorkflowResponse response = receiveResponse(businessKey, asyncResponse, 1000000);
220
221                 String responseBody = response.getResponse();
222                 System.out.println("Workflow (Synch) Response:\n" + responseBody);
223                 
224                 //injectVNFRestCallbacks(callbacks, "volumeGroupCreate");
225                 
226                 waitForProcessEnd(businessKey, 100000);
227                 checkVariable(businessKey, "CVMVINFRAV1_SuccessIndicator", false);
228                 
229                 logEnd();
230         }
231
232         /**
233          * Error scenario - error in validation
234          **************************************/
235         @Test
236         //@Ignore
237         @Deployment(resources = {"process/CreateVfModuleVolumeInfraV1.bpmn",
238                         "subprocess/GenericGetService.bpmn",
239                         "subprocess/DoCreateVfModuleVolumeV1.bpmn",
240             "subprocess/FalloutHandler.bpmn",
241             "subprocess/CompleteMsoProcess.bpmn",
242             "subprocess/VnfAdapterRestV1.bpmn"})
243         public void TestFailNoVnfPassed() throws Exception {
244
245                 logStart();
246                 
247                 mockUpdateRequestDB(200, "Database/DBUpdateResponse.xml");
248
249                 String businessKey = UUID.randomUUID().toString();
250                 String createVfModuleVolRequest = FileUtil.readResourceFile("__files/CreateVfModuleVolumeInfraV1/createVfModuleVolume_VID_request.json");
251                 
252                 Map<String, Object> testVariables = new HashMap<String, Object>();
253                 testVariables.put("requestId", "TEST-REQUEST-ID-0123");
254                 testVariables.put("serviceInstanceId", "test-service-instance-id");
255                 //testVariables.put("vnfId", "TEST-VNF-ID-0123");
256                 testVariables.put("test-volume-group-name", "TEST-MSOTESTVOL101a-vSAMP12_base_vol_module-0");
257                                 
258                 TestAsyncResponse asyncResponse = invokeAsyncProcess("CreateVfModuleVolumeInfraV1", "v1", businessKey, createVfModuleVolRequest, testVariables);
259                 WorkflowResponse response = receiveResponse(businessKey, asyncResponse, 1000000);
260
261                 String responseBody = response.getResponse();
262                 System.out.println("Workflow (Synch) Response:\n" + responseBody);
263                 waitForProcessEnd(businessKey, 100000);
264                 checkVariable(businessKey, "CVMVINFRAV1_SuccessIndicator", false);
265                 
266                 logEnd();
267         }
268         
269         /**
270          * Error scenario - service instance not found
271          *********************************************/
272         @Test
273         //@Ignore
274         @Deployment(resources = {"process/CreateVfModuleVolumeInfraV1.bpmn",
275                         "subprocess/GenericGetService.bpmn",
276                         "subprocess/DoCreateVfModuleVolumeV1.bpmn",
277             "subprocess/FalloutHandler.bpmn",
278             "subprocess/CompleteMsoProcess.bpmn",
279             "subprocess/VnfAdapterRestV1.bpmn"})
280         public void TestFailServiceInstanceNotFound() throws Exception {
281
282                 logStart();
283                 
284                 MockNodeQueryServiceInstanceById("test-service-instance-id", "CreateVfModuleVolumeInfraV1/getSIUrlById.xml");
285                 mockUpdateRequestDB(200, "Database/DBUpdateResponse.xml");
286
287                 String businessKey = UUID.randomUUID().toString();
288                 String createVfModuleVolRequest = FileUtil.readResourceFile("__files/CreateVfModuleVolumeInfraV1/createVfModuleVolume_VID_request.json");
289                 
290                 Map<String, Object> testVariables = new HashMap<String, Object>();
291                 testVariables.put("requestId", "TEST-REQUEST-ID-0123");
292                 testVariables.put("serviceInstanceId", "test-service-instance-id");
293                 //testVariables.put("vnfId", "TEST-VNF-ID-0123");
294                 testVariables.put("test-volume-group-name", "TEST-MSOTESTVOL101a-vSAMP12_base_vol_module-0");
295                                 
296                 TestAsyncResponse asyncResponse = invokeAsyncProcess("CreateVfModuleVolumeInfraV1", "v1", businessKey, createVfModuleVolRequest, testVariables);
297                 WorkflowResponse response = receiveResponse(businessKey, asyncResponse, 1000000);
298
299                 String responseBody = response.getResponse();
300                 System.out.println("Workflow (Synch) Response:\n" + responseBody);
301                 waitForProcessEnd(businessKey, 100000);
302                 checkVariable(businessKey, "CVMVINFRAV1_SuccessIndicator", false);
303                 
304                 logEnd();
305         }
306 }