Merge "bump the so version to 1.7.4"
[so.git] / bpmn / so-bpmn-tasks / src / test / java / org / onap / so / bpmn / infrastructure / workflow / tasks / WorkflowActionBBTasksTest.java
1 /*-
2  * ============LICENSE_START=======================================================
3  * ONAP - SO
4  * ================================================================================
5  * Copyright (C) 2017 - 2018 AT&T Intellectual Property. All rights reserved.
6  * ================================================================================
7  * Modifications Copyright (c) 2020 Nokia
8  * ================================================================================
9  * Licensed under the Apache License, Version 2.0 (the "License");
10  * you may not use this file except in compliance with the License.
11  * You may obtain a copy of the License at
12  *
13  *      http://www.apache.org/licenses/LICENSE-2.0
14  *
15  * Unless required by applicable law or agreed to in writing, software
16  * distributed under the License is distributed on an "AS IS" BASIS,
17  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
18  * See the License for the specific language governing permissions and
19  * limitations under the License.
20  * ============LICENSE_END=========================================================
21  */
22
23 package org.onap.so.bpmn.infrastructure.workflow.tasks;
24
25 import org.camunda.bpm.engine.delegate.BpmnError;
26 import org.camunda.bpm.engine.delegate.DelegateExecution;
27 import org.camunda.bpm.extension.mockito.delegate.DelegateExecutionFake;
28 import org.junit.Before;
29 import org.junit.Rule;
30 import org.junit.Test;
31 import org.junit.rules.ExpectedException;
32 import org.mockito.InjectMocks;
33 import org.mockito.Mock;
34 import org.mockito.Mockito;
35 import org.mockito.Spy;
36 import org.onap.aai.domain.yang.Configuration;
37 import org.onap.aai.domain.yang.GenericVnf;
38 import org.onap.aai.domain.yang.InstanceGroup;
39 import org.onap.aai.domain.yang.L3Network;
40 import org.onap.aai.domain.yang.ServiceInstance;
41 import org.onap.aai.domain.yang.VfModule;
42 import org.onap.aai.domain.yang.VolumeGroup;
43 import org.onap.so.bpmn.BaseTaskTest;
44 import org.onap.so.bpmn.common.listener.flowmanipulator.FlowManipulatorListenerRunner;
45 import org.onap.so.bpmn.core.WorkflowException;
46 import org.onap.so.bpmn.servicedecomposition.entities.BuildingBlock;
47 import org.onap.so.bpmn.servicedecomposition.entities.ConfigurationResourceKeys;
48 import org.onap.so.bpmn.servicedecomposition.entities.ExecuteBuildingBlock;
49 import org.onap.so.bpmn.servicedecomposition.entities.WorkflowResourceIds;
50 import org.onap.so.db.catalog.beans.VnfResourceCustomization;
51 import org.onap.so.db.request.beans.InfraActiveRequests;
52 import org.onap.so.serviceinstancebeans.ModelInfo;
53 import org.onap.so.serviceinstancebeans.RequestDetails;
54 import org.springframework.core.env.Environment;
55 import java.util.ArrayList;
56 import java.util.List;
57 import java.util.Optional;
58 import static org.assertj.core.api.Assertions.assertThat;
59 import static org.junit.Assert.assertEquals;
60 import static org.junit.Assert.assertFalse;
61 import static org.junit.Assert.assertTrue;
62 import static org.mockito.ArgumentMatchers.anyObject;
63 import static org.mockito.ArgumentMatchers.anyString;
64 import static org.mockito.ArgumentMatchers.isA;
65 import static org.mockito.Mockito.doNothing;
66 import static org.mockito.Mockito.doReturn;
67 import static org.mockito.Mockito.when;
68
69 public class WorkflowActionBBTasksTest extends BaseTaskTest {
70
71     private static final String SAMPLE_MSO_REQUEST_ID = "00f704ca-c5e5-4f95-a72c-6889db7b0688";
72     private static final String SAMPLE_REQUEST_ACTION = "Delete-Network-Collection";
73     private static final int SAMPLE_SEQUENCE = 0;
74     private static final String EMPTY_STRING = "";
75     @Mock
76     protected WorkflowAction workflowAction;
77
78     @Mock
79     protected WorkflowActionBBFailure workflowActionBBFailure;
80
81     @InjectMocks
82     @Spy
83     protected WorkflowActionBBTasks workflowActionBBTasks;
84
85     @Mock
86     InfraActiveRequests reqMock;
87
88     private DelegateExecution execution;
89
90     @Mock
91     protected Environment environment;
92
93     @Mock
94     private FlowManipulatorListenerRunner flowManipulatorListenerRunner;
95
96     @Rule
97     public ExpectedException thrown = ExpectedException.none();
98
99     @Before
100     public void before() throws Exception {
101         execution = new DelegateExecutionFake();
102         ServiceInstance servInstance = new ServiceInstance();
103         servInstance.setServiceInstanceId("TEST");
104         when(bbSetupUtils.getAAIServiceInstanceByName(anyString(), anyObject())).thenReturn(servInstance);
105         workflowAction.setBbInputSetupUtils(bbSetupUtils);
106         workflowAction.setBbInputSetup(bbInputSetup);
107     }
108
109     @Test
110     public void selectBBTest() {
111         String vnfCustomizationUUID = "1234567";
112         String modelUuid = "1234567";
113         prepareDelegateExecution();
114         List<ExecuteBuildingBlock> flowsToExecute = new ArrayList<>();
115
116         BuildingBlock buildingBlock =
117                 new BuildingBlock().setBpmnFlowName("ConfigAssignVnfBB").setKey(vnfCustomizationUUID);
118         RequestDetails rd = new RequestDetails();
119         ModelInfo mi = new ModelInfo();
120         mi.setModelUuid(modelUuid);
121         rd.setModelInfo(mi);
122         ExecuteBuildingBlock ebb = new ExecuteBuildingBlock().setBuildingBlock(buildingBlock).setRequestDetails(rd);
123         flowsToExecute.add(ebb);
124
125         List<VnfResourceCustomization> vnfResourceCustomizations = new ArrayList<>();
126         VnfResourceCustomization vrc = new VnfResourceCustomization();
127         vrc.setSkipPostInstConf(false);
128         vrc.setModelCustomizationUUID(vnfCustomizationUUID);
129         vnfResourceCustomizations.add(vrc);
130         GenericVnf genericVnf = new GenericVnf();
131         genericVnf.setModelCustomizationId(vnfCustomizationUUID);
132         doReturn(vnfResourceCustomizations).when(catalogDbClient).getVnfResourceCustomizationByModelUuid(modelUuid);
133         doReturn(vrc).when(catalogDbClient).findVnfResourceCustomizationInList(vnfCustomizationUUID,
134                 vnfResourceCustomizations);
135
136         execution.setVariable("flowsToExecute", flowsToExecute);
137         workflowActionBBTasks.selectBB(execution);
138         boolean success = (boolean) execution.getVariable("completed");
139         int currentSequence = (int) execution.getVariable("gCurrentSequence");
140         assertTrue(success);
141         assertEquals(1, currentSequence);
142     }
143
144     @Test
145     public void select2BBTest() {
146         String vnfCustomizationUUID = "1234567";
147         String modelUuid = "1234567";
148
149         prepareDelegateExecution();
150         List<ExecuteBuildingBlock> flowsToExecute = new ArrayList<>();
151         BuildingBlock buildingBlock =
152                 new BuildingBlock().setBpmnFlowName("ConfigDeployVnfBB").setKey(vnfCustomizationUUID);
153         RequestDetails rd = new RequestDetails();
154         ModelInfo mi = new ModelInfo();
155         mi.setModelUuid(modelUuid);
156         rd.setModelInfo(mi);
157         ExecuteBuildingBlock ebb = new ExecuteBuildingBlock().setBuildingBlock(buildingBlock).setRequestDetails(rd);
158         ExecuteBuildingBlock ebb2 = new ExecuteBuildingBlock();
159
160         flowsToExecute.add(ebb);
161
162         List<VnfResourceCustomization> vnfResourceCustomizations = new ArrayList<>();
163         VnfResourceCustomization vrc = new VnfResourceCustomization();
164
165         vrc.setSkipPostInstConf(false);
166         vrc.setModelCustomizationUUID(vnfCustomizationUUID);
167         vnfResourceCustomizations.add(vrc);
168         GenericVnf genericVnf = new GenericVnf();
169         genericVnf.setModelCustomizationId(vnfCustomizationUUID);
170
171         doReturn(vnfResourceCustomizations).when(catalogDbClient).getVnfResourceCustomizationByModelUuid(modelUuid);
172         doReturn(vrc).when(catalogDbClient).findVnfResourceCustomizationInList(vnfCustomizationUUID,
173                 vnfResourceCustomizations);
174
175         flowsToExecute.add(ebb2);
176         execution.setVariable("flowsToExecute", flowsToExecute);
177         workflowActionBBTasks.selectBB(execution);
178         boolean success = (boolean) execution.getVariable("completed");
179         int currentSequence = (int) execution.getVariable("gCurrentSequence");
180         assertFalse(success);
181         assertEquals(1, currentSequence);
182     }
183
184     @Test
185     public void updateRequestStatusToCompleteTest() {
186         String reqId = "reqId123";
187         execution.setVariable("mso-request-id", reqId);
188         execution.setVariable("requestAction", "createInstance");
189         execution.setVariable("resourceName", "Service");
190         execution.setVariable("aLaCarte", true);
191         InfraActiveRequests req = new InfraActiveRequests();
192         doReturn(req).when(requestsDbClient).getInfraActiveRequestbyRequestId(reqId);
193         doNothing().when(requestsDbClient).updateInfraActiveRequests(isA(InfraActiveRequests.class));
194         workflowActionBBTasks.updateRequestStatusToComplete(execution);
195         assertEquals("ALaCarte-Service-createInstance request was executed correctly.",
196                 execution.getVariable("finalStatusMessage"));
197     }
198
199     @Test
200     public void rollbackExecutionPathTest() {
201         execution.setVariable("handlingCode", "Rollback");
202         execution.setVariable("isRollback", false);
203         execution.setVariable("requestAction", EMPTY_STRING);
204         execution.setVariable("resourceName", EMPTY_STRING);
205         List<ExecuteBuildingBlock> flowsToExecute = new ArrayList<>();
206         BuildingBlock buildingBlock1 = new BuildingBlock().setBpmnFlowName("AssignVfModuleBB");
207         ExecuteBuildingBlock ebb1 = new ExecuteBuildingBlock().setBuildingBlock(buildingBlock1);
208         flowsToExecute.add(ebb1);
209
210         BuildingBlock buildingBlock2 = new BuildingBlock().setBpmnFlowName("CreateVfModuleBB");
211         ExecuteBuildingBlock ebb2 = new ExecuteBuildingBlock().setBuildingBlock(buildingBlock2);
212         flowsToExecute.add(ebb2);
213
214         BuildingBlock buildingBlock3 = new BuildingBlock().setBpmnFlowName("ActivateVfModuleBB");
215         ExecuteBuildingBlock ebb3 = new ExecuteBuildingBlock().setBuildingBlock(buildingBlock3);
216         flowsToExecute.add(ebb3);
217
218         execution.setVariable("flowsToExecute", flowsToExecute);
219         execution.setVariable("gCurrentSequence", 3);
220         doNothing().when(workflowActionBBFailure).updateRequestErrorStatusMessage(isA(DelegateExecution.class));
221
222         workflowActionBBTasks.rollbackExecutionPath(execution);
223         List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
224         assertEquals(ebbs.get(0).getBuildingBlock().getBpmnFlowName(), "DeactivateVfModuleBB");
225         assertEquals(ebbs.get(1).getBuildingBlock().getBpmnFlowName(), "DeleteVfModuleBB");
226         assertEquals(ebbs.get(2).getBuildingBlock().getBpmnFlowName(), "UnassignVfModuleBB");
227         assertEquals(0, execution.getVariable("gCurrentSequence"));
228     }
229
230     @Test
231     public void rollbackExecutionPathUnfinishedFlowTest() {
232         execution.setVariable("handlingCode", "Rollback");
233         execution.setVariable("isRollback", false);
234         execution.setVariable("requestAction", EMPTY_STRING);
235         execution.setVariable("resourceName", EMPTY_STRING);
236         List<ExecuteBuildingBlock> flowsToExecute = new ArrayList<>();
237         BuildingBlock buildingBlock1 = new BuildingBlock().setBpmnFlowName("AssignVfModuleBB");
238         ExecuteBuildingBlock ebb1 = new ExecuteBuildingBlock().setBuildingBlock(buildingBlock1);
239         flowsToExecute.add(ebb1);
240
241         BuildingBlock buildingBlock2 = new BuildingBlock().setBpmnFlowName("CreateVfModuleBB");
242         ExecuteBuildingBlock ebb2 = new ExecuteBuildingBlock().setBuildingBlock(buildingBlock2);
243         flowsToExecute.add(ebb2);
244
245         BuildingBlock buildingBlock3 = new BuildingBlock().setBpmnFlowName("ActivateVfModuleBB");
246         ExecuteBuildingBlock ebb3 = new ExecuteBuildingBlock().setBuildingBlock(buildingBlock3);
247         flowsToExecute.add(ebb3);
248
249         execution.setVariable("flowsToExecute", flowsToExecute);
250         execution.setVariable("gCurrentSequence", 2);
251         doNothing().when(workflowActionBBFailure).updateRequestErrorStatusMessage(isA(DelegateExecution.class));
252
253         workflowActionBBTasks.rollbackExecutionPath(execution);
254         List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
255         assertEquals(ebbs.get(0).getBuildingBlock().getBpmnFlowName(), "DeleteVfModuleBB");
256         assertEquals(ebbs.get(1).getBuildingBlock().getBpmnFlowName(), "UnassignVfModuleBB");
257         assertEquals(0, execution.getVariable("gCurrentSequence"));
258         assertEquals(0, execution.getVariable("retryCount"));
259     }
260
261     @Test
262     public void rollbackExecutionTest() {
263         execution.setVariable("handlingCode", "Rollback");
264         execution.setVariable("isRollback", false);
265         execution.setVariable("requestAction", EMPTY_STRING);
266         execution.setVariable("resourceName", EMPTY_STRING);
267         List<ExecuteBuildingBlock> flowsToExecute = new ArrayList<>();
268         BuildingBlock buildingBlock1 = new BuildingBlock().setBpmnFlowName("AssignServiceInstanceBB");
269         ExecuteBuildingBlock ebb1 = new ExecuteBuildingBlock().setBuildingBlock(buildingBlock1);
270         flowsToExecute.add(ebb1);
271
272         BuildingBlock buildingBlock2 = new BuildingBlock().setBpmnFlowName("CreateNetworkCollectionBB");
273         ExecuteBuildingBlock ebb2 = new ExecuteBuildingBlock().setBuildingBlock(buildingBlock2);
274         flowsToExecute.add(ebb2);
275
276         BuildingBlock buildingBlock3 = new BuildingBlock().setBpmnFlowName("AssignNetworkBB");
277         ExecuteBuildingBlock ebb3 = new ExecuteBuildingBlock().setBuildingBlock(buildingBlock3);
278         flowsToExecute.add(ebb3);
279
280         BuildingBlock buildingBlock4 = new BuildingBlock().setBpmnFlowName("CreateNetworkBB");
281         ExecuteBuildingBlock ebb4 = new ExecuteBuildingBlock().setBuildingBlock(buildingBlock4);
282         flowsToExecute.add(ebb4);
283
284         execution.setVariable("flowsToExecute", flowsToExecute);
285         execution.setVariable("gCurrentSequence", 3);
286         doNothing().when(workflowActionBBFailure).updateRequestErrorStatusMessage(isA(DelegateExecution.class));
287
288         workflowActionBBTasks.rollbackExecutionPath(execution);
289         List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
290         assertEquals(ebbs.get(0).getBuildingBlock().getBpmnFlowName(), "UnassignNetworkBB");
291         assertEquals(ebbs.get(1).getBuildingBlock().getBpmnFlowName(), "DeleteNetworkCollectionBB");
292         assertEquals(ebbs.get(2).getBuildingBlock().getBpmnFlowName(), "UnassignServiceInstanceBB");
293         assertEquals(0, execution.getVariable("gCurrentSequence"));
294     }
295
296     @Test
297     public void rollbackExecutionRollbackToAssignedTest() {
298         execution.setVariable("isRollback", false);
299         execution.setVariable("handlingCode", "RollbackToAssigned");
300         execution.setVariable("requestAction", EMPTY_STRING);
301         execution.setVariable("resourceName", EMPTY_STRING);
302         List<ExecuteBuildingBlock> flowsToExecute = new ArrayList<>();
303
304         BuildingBlock buildingBlock1 = new BuildingBlock().setBpmnFlowName("AssignVfModuleBB");
305         ExecuteBuildingBlock ebb1 = new ExecuteBuildingBlock().setBuildingBlock(buildingBlock1);
306         flowsToExecute.add(ebb1);
307
308         BuildingBlock buildingBlock2 = new BuildingBlock().setBpmnFlowName("CreateVfModuleBB");
309         ExecuteBuildingBlock ebb2 = new ExecuteBuildingBlock().setBuildingBlock(buildingBlock2);
310         flowsToExecute.add(ebb2);
311
312         BuildingBlock buildingBlock3 = new BuildingBlock().setBpmnFlowName("ActivateVfModuleBB");
313         ExecuteBuildingBlock ebb3 = new ExecuteBuildingBlock().setBuildingBlock(buildingBlock3);
314         flowsToExecute.add(ebb3);
315
316         execution.setVariable("flowsToExecute", flowsToExecute);
317         execution.setVariable("gCurrentSequence", 2);
318
319         workflowActionBBTasks.rollbackExecutionPath(execution);
320         List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
321         assertEquals("DeleteVfModuleBB", ebbs.get(0).getBuildingBlock().getBpmnFlowName());
322         assertEquals(0, execution.getVariable("gCurrentSequence"));
323         assertEquals(1, ebbs.size());
324     }
325
326     @Test
327     public void rollbackExecutionPathChangeBBForReplaceVFModuleTest() {
328         execution.setVariable("handlingCode", "Rollback");
329         execution.setVariable("isRollback", false);
330         execution.setVariable("requestAction", "replaceInstance");
331         execution.setVariable("resourceName", "VfModule");
332         List<ExecuteBuildingBlock> flowsToExecute = new ArrayList<>();
333         BuildingBlock buildingBlock1 = new BuildingBlock().setBpmnFlowName("AssignVfModuleBB");
334         ExecuteBuildingBlock ebb1 = new ExecuteBuildingBlock().setBuildingBlock(buildingBlock1);
335         flowsToExecute.add(ebb1);
336
337         BuildingBlock buildingBlock2 = new BuildingBlock().setBpmnFlowName("CreateVfModuleBB");
338         ExecuteBuildingBlock ebb2 = new ExecuteBuildingBlock().setBuildingBlock(buildingBlock2);
339         flowsToExecute.add(ebb2);
340
341         BuildingBlock buildingBlock3 = new BuildingBlock().setBpmnFlowName("ActivateVfModuleBB");
342         ExecuteBuildingBlock ebb3 = new ExecuteBuildingBlock().setBuildingBlock(buildingBlock3);
343         flowsToExecute.add(ebb3);
344
345
346         BuildingBlock buildingBlock4 = new BuildingBlock().setBpmnFlowName("ChangeModelVnfBB");
347         ExecuteBuildingBlock ebb4 = new ExecuteBuildingBlock().setBuildingBlock(buildingBlock4);
348         flowsToExecute.add(ebb4);
349
350         BuildingBlock buildingBlock5 = new BuildingBlock().setBpmnFlowName("ChangeModelServiceInstanceBB");
351         ExecuteBuildingBlock ebb5 = new ExecuteBuildingBlock().setBuildingBlock(buildingBlock5);
352         flowsToExecute.add(ebb5);
353
354         execution.setVariable("flowsToExecute", flowsToExecute);
355         execution.setVariable("gCurrentSequence", 5);
356         doNothing().when(workflowActionBBFailure).updateRequestErrorStatusMessage(isA(DelegateExecution.class));
357
358         workflowActionBBTasks.rollbackExecutionPath(execution);
359         List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
360         assertEquals(ebbs.get(0).getBuildingBlock().getBpmnFlowName(), "ChangeModelVnfBB");
361         assertEquals(ebbs.get(1).getBuildingBlock().getBpmnFlowName(), "ChangeModelServiceInstanceBB");
362         assertEquals(0, execution.getVariable("gCurrentSequence"));
363     }
364
365     @Test
366     public void rollbackExecutionRollbackToAssignedWithFabricTest() {
367         execution.setVariable("isRollback", false);
368         execution.setVariable("handlingCode", "RollbackToAssigned");
369         execution.setVariable("requestAction", EMPTY_STRING);
370         execution.setVariable("resourceName", EMPTY_STRING);
371         List<ExecuteBuildingBlock> flowsToExecute = new ArrayList<>();
372
373         BuildingBlock buildingBlock1 = new BuildingBlock().setBpmnFlowName("AssignVfModuleBB");
374         ExecuteBuildingBlock ebb1 = new ExecuteBuildingBlock().setBuildingBlock(buildingBlock1);
375         flowsToExecute.add(ebb1);
376
377         BuildingBlock buildingBlock2 = new BuildingBlock().setBpmnFlowName("CreateVfModuleBB");
378         ExecuteBuildingBlock ebb2 = new ExecuteBuildingBlock().setBuildingBlock(buildingBlock2);
379         flowsToExecute.add(ebb2);
380
381         BuildingBlock buildingBlock3 = new BuildingBlock().setBpmnFlowName("ActivateVfModuleBB");
382         ExecuteBuildingBlock ebb3 = new ExecuteBuildingBlock().setBuildingBlock(buildingBlock3);
383         flowsToExecute.add(ebb3);
384
385         BuildingBlock buildingBlock4 = new BuildingBlock().setBpmnFlowName("AddFabricConfigurationBB");
386         ExecuteBuildingBlock ebb4 = new ExecuteBuildingBlock().setBuildingBlock(buildingBlock4);
387         flowsToExecute.add(ebb4);
388
389         execution.setVariable("flowsToExecute", flowsToExecute);
390         execution.setVariable("gCurrentSequence", 4);
391
392         workflowActionBBTasks.rollbackExecutionPath(execution);
393         List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
394         assertEquals(0, execution.getVariable("gCurrentSequence"));
395         assertEquals(3, ebbs.size());
396         assertEquals("DeleteFabricConfigurationBB", ebbs.get(0).getBuildingBlock().getBpmnFlowName());
397         assertEquals("DeactivateVfModuleBB", ebbs.get(1).getBuildingBlock().getBpmnFlowName());
398         assertEquals("DeleteVfModuleBB", ebbs.get(2).getBuildingBlock().getBpmnFlowName());
399
400     }
401
402     @Test
403     public void rollbackExecutionRollbackToCreatedWithFabricTest() {
404         execution.setVariable("isRollback", false);
405         execution.setVariable("handlingCode", "RollbackToCreated");
406         execution.setVariable("requestAction", EMPTY_STRING);
407         execution.setVariable("resourceName", EMPTY_STRING);
408         List<ExecuteBuildingBlock> flowsToExecute = new ArrayList<>();
409
410         BuildingBlock buildingBlock1 = new BuildingBlock().setBpmnFlowName("AssignVfModuleBB");
411         ExecuteBuildingBlock ebb1 = new ExecuteBuildingBlock().setBuildingBlock(buildingBlock1);
412         flowsToExecute.add(ebb1);
413
414         BuildingBlock buildingBlock2 = new BuildingBlock().setBpmnFlowName("CreateVfModuleBB");
415         ExecuteBuildingBlock ebb2 = new ExecuteBuildingBlock().setBuildingBlock(buildingBlock2);
416         flowsToExecute.add(ebb2);
417
418         BuildingBlock buildingBlock3 = new BuildingBlock().setBpmnFlowName("ActivateVfModuleBB");
419         ExecuteBuildingBlock ebb3 = new ExecuteBuildingBlock().setBuildingBlock(buildingBlock3);
420         flowsToExecute.add(ebb3);
421
422         BuildingBlock buildingBlock4 = new BuildingBlock().setBpmnFlowName("AddFabricConfigurationBB");
423         ExecuteBuildingBlock ebb4 = new ExecuteBuildingBlock().setBuildingBlock(buildingBlock4);
424         flowsToExecute.add(ebb4);
425
426         execution.setVariable("flowsToExecute", flowsToExecute);
427         execution.setVariable("gCurrentSequence", 4);
428
429         workflowActionBBTasks.rollbackExecutionPath(execution);
430         List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
431         assertEquals(0, execution.getVariable("gCurrentSequence"));
432         assertEquals(2, ebbs.size());
433         assertEquals("DeleteFabricConfigurationBB", ebbs.get(0).getBuildingBlock().getBpmnFlowName());
434         assertEquals("DeactivateVfModuleBB", ebbs.get(1).getBuildingBlock().getBpmnFlowName());
435
436     }
437
438     @Test
439     public void rollbackExecutionRollbackToCreatedNoConfigurationWithFabricTest() {
440         execution.setVariable("isRollback", false);
441         execution.setVariable("handlingCode", "RollbackToCreatedNoConfiguration");
442         execution.setVariable("requestAction", EMPTY_STRING);
443         execution.setVariable("resourceName", EMPTY_STRING);
444         List<ExecuteBuildingBlock> flowsToExecute = new ArrayList<>();
445
446         BuildingBlock buildingBlock1 = new BuildingBlock().setBpmnFlowName("AssignVfModuleBB");
447         ExecuteBuildingBlock ebb1 = new ExecuteBuildingBlock().setBuildingBlock(buildingBlock1);
448         flowsToExecute.add(ebb1);
449
450         BuildingBlock buildingBlock2 = new BuildingBlock().setBpmnFlowName("CreateVfModuleBB");
451         ExecuteBuildingBlock ebb2 = new ExecuteBuildingBlock().setBuildingBlock(buildingBlock2);
452         flowsToExecute.add(ebb2);
453
454         BuildingBlock buildingBlock3 = new BuildingBlock().setBpmnFlowName("ActivateVfModuleBB");
455         ExecuteBuildingBlock ebb3 = new ExecuteBuildingBlock().setBuildingBlock(buildingBlock3);
456         flowsToExecute.add(ebb3);
457
458         BuildingBlock buildingBlock4 = new BuildingBlock().setBpmnFlowName("AddFabricConfigurationBB");
459         ExecuteBuildingBlock ebb4 = new ExecuteBuildingBlock().setBuildingBlock(buildingBlock4);
460         flowsToExecute.add(ebb4);
461
462         execution.setVariable("flowsToExecute", flowsToExecute);
463         execution.setVariable("gCurrentSequence", 4);
464
465         workflowActionBBTasks.rollbackExecutionPath(execution);
466         List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
467         assertEquals(0, execution.getVariable("gCurrentSequence"));
468         assertEquals(1, ebbs.size());
469         assertEquals("DeactivateVfModuleBB", ebbs.get(0).getBuildingBlock().getBpmnFlowName());
470     }
471
472     @Test
473     public void rollbackExecutionRollbackToCreatedTest() {
474         execution.setVariable("isRollback", false);
475         execution.setVariable("handlingCode", "RollbackToCreated");
476         execution.setVariable("requestAction", EMPTY_STRING);
477         execution.setVariable("resourceName", EMPTY_STRING);
478         List<ExecuteBuildingBlock> flowsToExecute = new ArrayList<>();
479         BuildingBlock buildingBlock1 = new BuildingBlock().setBpmnFlowName("AssignVfModuleBB");
480         ExecuteBuildingBlock ebb1 = new ExecuteBuildingBlock().setBuildingBlock(buildingBlock1);
481         flowsToExecute.add(ebb1);
482
483         BuildingBlock buildingBlock2 = new BuildingBlock().setBpmnFlowName("CreateVfModuleBB");
484         ExecuteBuildingBlock ebb2 = new ExecuteBuildingBlock().setBuildingBlock(buildingBlock2);
485         flowsToExecute.add(ebb2);
486
487         BuildingBlock buildingBlock3 = new BuildingBlock().setBpmnFlowName("ActivateVfModuleBB");
488         ExecuteBuildingBlock ebb3 = new ExecuteBuildingBlock().setBuildingBlock(buildingBlock3);
489         flowsToExecute.add(ebb3);
490
491         execution.setVariable("flowsToExecute", flowsToExecute);
492         execution.setVariable("gCurrentSequence", 3);
493
494         workflowActionBBTasks.rollbackExecutionPath(execution);
495         List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
496         assertEquals("DeactivateVfModuleBB", ebbs.get(0).getBuildingBlock().getBpmnFlowName());
497         assertEquals(0, execution.getVariable("gCurrentSequence"));
498         assertEquals(1, ebbs.size());
499     }
500
501     @Test
502     public void rollbackExecutionRollbackInPlaceSoftwareUpdateTest() {
503         execution.setVariable("isRollback", false);
504         execution.setVariable("handlingCode", "Rollback");
505         execution.setVariable("requestAction", EMPTY_STRING);
506         execution.setVariable("resourceName", EMPTY_STRING);
507         List<ExecuteBuildingBlock> flowsToExecute = new ArrayList<>();
508         BuildingBlock buildingBlock1 = new BuildingBlock().setBpmnFlowName("VNFCheckPserversLockedFlagActivity");
509         ExecuteBuildingBlock ebb1 = new ExecuteBuildingBlock().setBuildingBlock(buildingBlock1);
510         flowsToExecute.add(ebb1);
511
512         BuildingBlock buildingBlock2 = new BuildingBlock().setBpmnFlowName("VNFCheckInMaintFlagActivity");
513         ExecuteBuildingBlock ebb2 = new ExecuteBuildingBlock().setBuildingBlock(buildingBlock2);
514         flowsToExecute.add(ebb2);
515
516         BuildingBlock buildingBlock3 = new BuildingBlock().setBpmnFlowName("VNFSetInMaintFlagActivity");
517         ExecuteBuildingBlock ebb3 = new ExecuteBuildingBlock().setBuildingBlock(buildingBlock3);
518         flowsToExecute.add(ebb3);
519
520         BuildingBlock buildingBlock4 = new BuildingBlock().setBpmnFlowName("VNFCheckClosedLoopDisabledFlagActivity");
521         ExecuteBuildingBlock ebb4 = new ExecuteBuildingBlock().setBuildingBlock(buildingBlock4);
522         flowsToExecute.add(ebb4);
523
524         BuildingBlock buildingBlock5 = new BuildingBlock().setBpmnFlowName("VNFSetClosedLoopDisabledFlagActivity");
525         ExecuteBuildingBlock ebb5 = new ExecuteBuildingBlock().setBuildingBlock(buildingBlock5);
526         flowsToExecute.add(ebb5);
527
528         BuildingBlock buildingBlock6 = new BuildingBlock().setBpmnFlowName("VNFLockActivity");
529         ExecuteBuildingBlock ebb6 = new ExecuteBuildingBlock().setBuildingBlock(buildingBlock6);
530         flowsToExecute.add(ebb6);
531
532         BuildingBlock buildingBlock7 = new BuildingBlock().setBpmnFlowName("VNFUpgradePreCheckActivity");
533         ExecuteBuildingBlock ebb7 = new ExecuteBuildingBlock().setBuildingBlock(buildingBlock7);
534         flowsToExecute.add(ebb7);
535
536         BuildingBlock buildingBlock8 = new BuildingBlock().setBpmnFlowName("VNFQuiesceTrafficActivity");
537         ExecuteBuildingBlock ebb8 = new ExecuteBuildingBlock().setBuildingBlock(buildingBlock8);
538         flowsToExecute.add(ebb8);
539
540         BuildingBlock buildingBlock9 = new BuildingBlock().setBpmnFlowName("VNFStopActivity");
541         ExecuteBuildingBlock ebb9 = new ExecuteBuildingBlock().setBuildingBlock(buildingBlock9);
542         flowsToExecute.add(ebb9);
543
544         BuildingBlock buildingBlock10 = new BuildingBlock().setBpmnFlowName("VNFSnapShotActivity");
545         ExecuteBuildingBlock ebb10 = new ExecuteBuildingBlock().setBuildingBlock(buildingBlock10);
546         flowsToExecute.add(ebb10);
547
548         execution.setVariable("flowsToExecute", flowsToExecute);
549         execution.setVariable("gCurrentSequence", 10);
550
551         workflowActionBBTasks.rollbackExecutionPath(execution);
552         List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
553         assertEquals("VNFStartActivity", ebbs.get(0).getBuildingBlock().getBpmnFlowName());
554         assertEquals("VNFResumeTrafficActivity", ebbs.get(1).getBuildingBlock().getBpmnFlowName());
555         assertEquals("VNFUnlockActivity", ebbs.get(2).getBuildingBlock().getBpmnFlowName());
556         assertEquals("VNFUnsetClosedLoopDisabledFlagActivity", ebbs.get(3).getBuildingBlock().getBpmnFlowName());
557         assertEquals("VNFUnsetInMaintFlagActivity", ebbs.get(4).getBuildingBlock().getBpmnFlowName());
558         assertEquals(0, execution.getVariable("gCurrentSequence"));
559         assertEquals(5, ebbs.size());
560     }
561
562     @Test
563     public void rollbackExecutionRollbackConfigModifyTest() {
564         execution.setVariable("isRollback", false);
565         execution.setVariable("handlingCode", "Rollback");
566         execution.setVariable("requestAction", EMPTY_STRING);
567         execution.setVariable("resourceName", EMPTY_STRING);
568         List<ExecuteBuildingBlock> flowsToExecute = new ArrayList<>();
569         BuildingBlock buildingBlock1 = new BuildingBlock().setBpmnFlowName("VNFCheckPserversLockedFlagActivity");
570         ExecuteBuildingBlock ebb1 = new ExecuteBuildingBlock().setBuildingBlock(buildingBlock1);
571         flowsToExecute.add(ebb1);
572
573         BuildingBlock buildingBlock2 = new BuildingBlock().setBpmnFlowName("VNFCheckInMaintFlagActivity");
574         ExecuteBuildingBlock ebb2 = new ExecuteBuildingBlock().setBuildingBlock(buildingBlock2);
575         flowsToExecute.add(ebb2);
576
577         BuildingBlock buildingBlock3 = new BuildingBlock().setBpmnFlowName("VNFSetInMaintFlagActivity");
578         ExecuteBuildingBlock ebb3 = new ExecuteBuildingBlock().setBuildingBlock(buildingBlock3);
579         flowsToExecute.add(ebb3);
580
581         BuildingBlock buildingBlock4 = new BuildingBlock().setBpmnFlowName("VNFCheckClosedLoopDisabledFlagActivity");
582         ExecuteBuildingBlock ebb4 = new ExecuteBuildingBlock().setBuildingBlock(buildingBlock4);
583         flowsToExecute.add(ebb4);
584
585         BuildingBlock buildingBlock5 = new BuildingBlock().setBpmnFlowName("VNFSetClosedLoopDisabledFlagActivity");
586         ExecuteBuildingBlock ebb5 = new ExecuteBuildingBlock().setBuildingBlock(buildingBlock5);
587         flowsToExecute.add(ebb5);
588
589         BuildingBlock buildingBlock6 = new BuildingBlock().setBpmnFlowName("VNFHealthCheckActivity");
590         ExecuteBuildingBlock ebb6 = new ExecuteBuildingBlock().setBuildingBlock(buildingBlock6);
591         flowsToExecute.add(ebb6);
592
593         execution.setVariable("flowsToExecute", flowsToExecute);
594         execution.setVariable("gCurrentSequence", 6);
595
596         workflowActionBBTasks.rollbackExecutionPath(execution);
597         List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
598         assertEquals("VNFUnsetClosedLoopDisabledFlagActivity", ebbs.get(0).getBuildingBlock().getBpmnFlowName());
599         assertEquals("VNFUnsetInMaintFlagActivity", ebbs.get(1).getBuildingBlock().getBpmnFlowName());
600         assertEquals(0, execution.getVariable("gCurrentSequence"));
601         assertEquals(2, ebbs.size());
602     }
603
604     @Test
605     public void postProcessingExecuteBBActivateVfModuleTest() throws CloneNotSupportedException {
606         BuildingBlock bbActivateVfModule = new BuildingBlock().setBpmnFlowName("ActivateVfModuleBB");
607         ExecuteBuildingBlock ebbActivateVfModule = new ExecuteBuildingBlock().setBuildingBlock(bbActivateVfModule);
608
609         WorkflowResourceIds resourceIdsActivateVfModule = new WorkflowResourceIds();
610         resourceIdsActivateVfModule.setServiceInstanceId("test-service-inbstance-id");
611         resourceIdsActivateVfModule.setVnfId("test-vnf-id");
612         resourceIdsActivateVfModule.setVfModuleId("test-vf-module-id");
613         resourceIdsActivateVfModule.setConfigurationId("");
614
615         RequestDetails requestDetails = new RequestDetails();
616
617         ebbActivateVfModule.setApiVersion("7");
618         ebbActivateVfModule.setaLaCarte(true);
619         ebbActivateVfModule.setRequestAction("createInstance");
620         ebbActivateVfModule.setVnfType("test-vnf-type");
621         ebbActivateVfModule.setRequestId("f6c00ae2-a205-4cbd-b055-02e553efde12");
622         ebbActivateVfModule.setRequestDetails(requestDetails);
623         ebbActivateVfModule.setWorkflowResourceIds(resourceIdsActivateVfModule);
624
625         ConfigurationResourceKeys configurationResourceKeys = new ConfigurationResourceKeys();
626         configurationResourceKeys.setCvnfcCustomizationUUID("07d64cd2-4427-4156-b11d-d14b96b3e4cb");
627         configurationResourceKeys.setVfModuleCustomizationUUID("50b61075-6ebb-4aab-a9fc-bedad9a2aa76");
628         configurationResourceKeys.setVnfResourceCustomizationUUID("a1d0e36e-34a9-431b-b5ba-4bbb72f63c7c");
629         configurationResourceKeys.setVnfcName("rdm54bvbgw5001vm018pim001");
630
631         ExecuteBuildingBlock ebbAddFabricConfig =
632                 workflowActionBBTasks.getExecuteBBForConfig("AddFabricConfigurationBB", ebbActivateVfModule,
633                         "cc7e12f9-967c-4362-8d14-e5b2bf0608a4", configurationResourceKeys);
634
635         assertEquals("7", ebbAddFabricConfig.getApiVersion());
636         assertTrue(ebbAddFabricConfig.isaLaCarte());
637         assertEquals("createInstance", ebbAddFabricConfig.getRequestAction());
638         assertEquals("test-vnf-type", ebbAddFabricConfig.getVnfType());
639         assertEquals("f6c00ae2-a205-4cbd-b055-02e553efde12", ebbAddFabricConfig.getRequestId());
640         assertEquals(requestDetails, ebbAddFabricConfig.getRequestDetails());
641         assertEquals("cc7e12f9-967c-4362-8d14-e5b2bf0608a4",
642                 ebbAddFabricConfig.getWorkflowResourceIds().getConfigurationId());
643         assertEquals("test-service-inbstance-id", ebbAddFabricConfig.getWorkflowResourceIds().getServiceInstanceId());
644         assertEquals("test-vnf-id", ebbAddFabricConfig.getWorkflowResourceIds().getVnfId());
645         assertEquals("test-vf-module-id", ebbAddFabricConfig.getWorkflowResourceIds().getVfModuleId());
646
647         assertThat(ebbAddFabricConfig.getConfigurationResourceKeys()).isEqualTo(configurationResourceKeys);
648         assertThat(ebbAddFabricConfig.getWorkflowResourceIds())
649                 .isNotEqualTo(ebbActivateVfModule.getWorkflowResourceIds());
650         assertThat(ebbAddFabricConfig.getWorkflowResourceIds().getConfigurationId())
651                 .isNotEqualTo(ebbActivateVfModule.getWorkflowResourceIds().getConfigurationId());
652     }
653
654     @Test
655     public void checkRetryStatusTest() {
656         String reqId = "reqId123";
657         execution.setVariable("mso-request-id", reqId);
658         doNothing().when(workflowActionBBFailure).updateRequestErrorStatusMessage(isA(DelegateExecution.class));
659         doReturn("6").when(environment).getProperty("mso.rainyDay.maxRetries");
660         execution.setVariable("handlingCode", "Retry");
661         execution.setVariable("retryCount", 1);
662         execution.setVariable("gCurrentSequence", 1);
663         InfraActiveRequests req = new InfraActiveRequests();
664         doReturn(req).when(requestsDbClient).getInfraActiveRequestbyRequestId(reqId);
665         workflowActionBBTasks.checkRetryStatus(execution);
666         assertEquals(0, execution.getVariable("gCurrentSequence"));
667     }
668
669     @Test
670     public void checkRetryStatusTestExceededMaxRetries() {
671         String reqId = "reqId123";
672         execution.setVariable("mso-request-id", reqId);
673         doNothing().when(workflowActionBBFailure).updateRequestErrorStatusMessage(isA(DelegateExecution.class));
674         doReturn("6").when(environment).getProperty("mso.rainyDay.maxRetries");
675         execution.setVariable("handlingCode", "Retry");
676         execution.setVariable("retryCount", 6);
677         execution.setVariable("gCurrentSequence", 1);
678         InfraActiveRequests req = new InfraActiveRequests();
679         doReturn(req).when(requestsDbClient).getInfraActiveRequestbyRequestId(reqId);
680         try {
681             workflowActionBBTasks.checkRetryStatus(execution);
682         } catch (BpmnError e) {
683             WorkflowException exception = (WorkflowException) execution.getVariable("WorkflowException");
684             assertEquals("Exceeded maximum retries. Ending flow with status Abort", exception.getErrorMessage());
685         }
686     }
687
688     @Test
689     public void checkRetryStatusNoRetryTest() {
690         String reqId = "reqId123";
691         execution.setVariable("mso-request-id", reqId);
692         execution.setVariable("retryCount", 3);
693         execution.setVariable("handlingCode", "Success");
694         execution.setVariable("gCurrentSequence", 1);
695         InfraActiveRequests req = new InfraActiveRequests();
696         doReturn(req).when(requestsDbClient).getInfraActiveRequestbyRequestId(reqId);
697         workflowActionBBTasks.checkRetryStatus(execution);
698         assertEquals(0, execution.getVariable("retryCount"));
699     }
700
701     @Test
702     public void updateInstanceId() {
703         String reqId = "req123";
704         String instanceId = "123123123";
705         execution.setVariable("mso-request-id", reqId);
706         execution.setVariable("resourceId", instanceId);
707         execution.setVariable("resourceType", WorkflowType.SERVICE);
708         doReturn(reqMock).when(requestsDbClient).getInfraActiveRequestbyRequestId(reqId);
709         doNothing().when(requestsDbClient).updateInfraActiveRequests(isA(InfraActiveRequests.class));
710         workflowActionBBTasks.updateInstanceId(execution);
711         Mockito.verify(reqMock, Mockito.times(1)).setServiceInstanceId(instanceId);
712     }
713
714     @Test
715     public void getConfigurationId() throws Exception {
716         org.onap.aai.domain.yang.Vnfc vnfc = new org.onap.aai.domain.yang.Vnfc();
717         vnfc.setModelInvariantId("modelInvariantId");
718         vnfc.setVnfcName("testVnfcName");
719         List<Configuration> configurations = new ArrayList<>();
720         org.onap.aai.domain.yang.Configuration configuration = new org.onap.aai.domain.yang.Configuration();
721         configuration.setConfigurationId("configurationId");
722         configuration.setModelCustomizationId("modelCustimizationId");
723         configuration.setConfigurationName("testConfigurationName");
724         configurations.add(configuration);
725         doReturn(configurations.get(0).getConfigurationId()).when(workflowActionBBTasks).getConfigurationId(vnfc);
726         assertEquals(workflowActionBBTasks.getConfigurationId(vnfc), "configurationId");
727     }
728
729     @Test
730     public void setServiceInstanceNameTest() {
731         String resourceId = "40bc4ebd-11df-4610-8055-059f7441ec1c";
732         WorkflowType resourceType = WorkflowType.SERVICE;
733         InfraActiveRequests request = new InfraActiveRequests();
734         ServiceInstance service = new ServiceInstance();
735         service.setServiceInstanceName("serviceInstanceName");
736         doReturn(service).when(bbSetupUtils).getAAIServiceInstanceById(resourceId);
737
738         workflowActionBBTasks.setInstanceName(resourceId, resourceType, request);
739         assertEquals("serviceInstanceName", request.getServiceInstanceName());
740     }
741
742     @Test
743     public void setVnfNameTest() {
744         String resourceId = "40bc4ebd-11df-4610-8055-059f7441ec1c";
745         WorkflowType resourceType = WorkflowType.VNF;
746         InfraActiveRequests request = new InfraActiveRequests();
747         GenericVnf vnf = new GenericVnf();
748         vnf.setVnfName("vnfName");
749         doReturn(vnf).when(bbSetupUtils).getAAIGenericVnf(resourceId);
750
751         workflowActionBBTasks.setInstanceName(resourceId, resourceType, request);
752         assertEquals("vnfName", request.getVnfName());
753     }
754
755     @Test
756     public void setVfModuleNameTest() {
757         String resourceId = "40bc4ebd-11df-4610-8055-059f7441ec1c";
758         WorkflowType resourceType = WorkflowType.VFMODULE;
759         InfraActiveRequests request = new InfraActiveRequests();
760         request.setVnfId("ae5cc3e8-c13c-4d88-aaf6-694ab4977b0e");
761         VfModule vfModule = new VfModule();
762         vfModule.setVfModuleName("vfModuleName");
763         doReturn(vfModule).when(bbSetupUtils).getAAIVfModule("ae5cc3e8-c13c-4d88-aaf6-694ab4977b0e", resourceId);
764
765         workflowActionBBTasks.setInstanceName(resourceId, resourceType, request);
766         assertEquals("vfModuleName", request.getVfModuleName());
767     }
768
769     @Test
770     public void setNetworkNameTest() {
771         String resourceId = "40bc4ebd-11df-4610-8055-059f7441ec1c";
772         WorkflowType resourceType = WorkflowType.NETWORK;
773         InfraActiveRequests request = new InfraActiveRequests();
774         L3Network network = new L3Network();
775         network.setNetworkName("networkName");
776         doReturn(network).when(bbSetupUtils).getAAIL3Network(resourceId);
777
778         workflowActionBBTasks.setInstanceName(resourceId, resourceType, request);
779         assertEquals("networkName", request.getNetworkName());
780     }
781
782     @Test
783     public void setConfigurationNameTest() {
784         String resourceId = "40bc4ebd-11df-4610-8055-059f7441ec1c";
785         WorkflowType resourceType = WorkflowType.CONFIGURATION;
786         InfraActiveRequests request = new InfraActiveRequests();
787         Configuration configuration = new Configuration();
788         configuration.setConfigurationName("configurationName");
789         doReturn(configuration).when(bbSetupUtils).getAAIConfiguration(resourceId);
790
791         workflowActionBBTasks.setInstanceName(resourceId, resourceType, request);
792         assertEquals("configurationName", request.getConfigurationName());
793     }
794
795     @Test
796     public void setInstanceGroupNameTest() {
797         String resourceId = "40bc4ebd-11df-4610-8055-059f7441ec1c";
798         WorkflowType resourceType = WorkflowType.INSTANCE_GROUP;
799         InfraActiveRequests request = new InfraActiveRequests();
800         InstanceGroup instanceGroup = new InstanceGroup();
801         instanceGroup.setInstanceGroupName("instanceGroupName");
802         doReturn(instanceGroup).when(bbSetupUtils).getAAIInstanceGroup(resourceId);
803
804         workflowActionBBTasks.setInstanceName(resourceId, resourceType, request);
805         assertEquals("instanceGroupName", request.getInstanceGroupName());
806     }
807
808     @Test
809     public void setVolumeGroupNameTest() {
810         String resourceId = "40bc4ebd-11df-4610-8055-059f7441ec1c";
811         WorkflowType resourceType = WorkflowType.VOLUMEGROUP;
812         InfraActiveRequests request = new InfraActiveRequests();
813         request.setVnfId("4aa72c90-21eb-4465-8847-997e27af6c3e");
814         VolumeGroup volumeGroup = new VolumeGroup();
815         volumeGroup.setVolumeGroupName("volumeGroupName");
816         Optional<VolumeGroup> returnVolumeGroup = Optional.of(volumeGroup);
817
818         doReturn(returnVolumeGroup).when(bbSetupUtils).getRelatedVolumeGroupByIdFromVnf(request.getVnfId(), resourceId);
819         workflowActionBBTasks.setInstanceName(resourceId, resourceType, request);
820
821         assertEquals("volumeGroupName", request.getVolumeGroupName());
822     }
823
824     private void prepareDelegateExecution() {
825         execution.setVariable("mso-request-id", SAMPLE_MSO_REQUEST_ID);
826         execution.setVariable("requestAction", SAMPLE_REQUEST_ACTION);
827         execution.setVariable("gCurrentSequence", SAMPLE_SEQUENCE);
828         execution.setVariable("homing", false);
829         execution.setVariable("calledHoming", false);
830     }
831 }