2 * ============LICENSE_START=======================================================
4 * ================================================================================
5 * Copyright (C) 2017 - 2018 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
11 * http://www.apache.org/licenses/LICENSE-2.0
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=========================================================
21 package org.onap.so.bpmn.infrastructure.workflow.tasks;
23 import static org.hamcrest.CoreMatchers.containsString;
24 import static org.hamcrest.CoreMatchers.equalTo;
25 import static org.junit.Assert.assertEquals;
26 import static org.junit.Assert.assertNull;
27 import static org.junit.Assert.assertThat;
28 import static org.mockito.Matchers.anyObject;
29 import static org.mockito.Matchers.anyString;
30 import static org.mockito.Mockito.doReturn;
31 import static org.mockito.Mockito.when;
33 import java.io.IOException;
34 import java.net.MalformedURLException;
35 import java.nio.file.Files;
36 import java.nio.file.Paths;
37 import java.util.ArrayList;
38 import java.util.Arrays;
39 import java.util.LinkedList;
40 import java.util.List;
41 import java.util.Optional;
42 import java.util.UUID;
44 import org.camunda.bpm.engine.delegate.BpmnError;
45 import org.camunda.bpm.engine.delegate.DelegateExecution;
46 import org.camunda.bpm.extension.mockito.delegate.DelegateExecutionFake;
47 import org.junit.Before;
48 import org.junit.Ignore;
49 import org.junit.Rule;
50 import org.junit.Test;
51 import org.junit.rules.ExpectedException;
52 import org.onap.aai.domain.yang.GenericVnf;
53 import org.onap.aai.domain.yang.L3Network;
54 import org.onap.aai.domain.yang.ServiceInstance;
55 import org.onap.aai.domain.yang.VfModule;
56 import org.onap.aai.domain.yang.VfModules;
57 import org.onap.aai.domain.yang.VolumeGroup;
58 import org.onap.so.bpmn.BaseTaskTest;
59 import org.onap.so.bpmn.servicedecomposition.bbobjects.Collection;
60 import org.onap.so.bpmn.servicedecomposition.entities.BuildingBlock;
61 import org.onap.so.bpmn.servicedecomposition.entities.ExecuteBuildingBlock;
62 import org.onap.so.bpmn.servicedecomposition.entities.WorkflowResourceIds;
63 import org.onap.so.db.catalog.beans.CollectionNetworkResourceCustomization;
64 import org.onap.so.db.catalog.beans.CollectionResource;
65 import org.onap.so.db.catalog.beans.CollectionResourceCustomization;
66 import org.onap.so.db.catalog.beans.CollectionResourceInstanceGroupCustomization;
67 import org.onap.so.db.catalog.beans.HeatEnvironment;
68 import org.onap.so.db.catalog.beans.HeatTemplate;
69 import org.onap.so.db.catalog.beans.InstanceGroup;
70 import org.onap.so.db.catalog.beans.NetworkCollectionResourceCustomization;
71 import org.onap.so.db.catalog.beans.NetworkResourceCustomization;
72 import org.onap.so.db.catalog.beans.Service;
73 import org.onap.so.db.catalog.beans.VfModuleCustomization;
74 import org.onap.so.db.catalog.beans.macro.NorthBoundRequest;
75 import org.onap.so.db.catalog.beans.macro.OrchestrationFlow;
76 import org.onap.so.serviceinstancebeans.RequestDetails;
77 import org.onap.so.serviceinstancebeans.RequestParameters;
78 import org.onap.so.serviceinstancebeans.ServiceInstancesRequest;
79 import org.onap.so.serviceinstancebeans.SubscriberInfo;
80 import org.springframework.beans.factory.annotation.Autowired;
82 import com.fasterxml.jackson.databind.ObjectMapper;
84 public class WorkflowActionTest extends BaseTaskTest {
86 protected WorkflowAction workflowAction;
88 private DelegateExecution execution;
91 public ExpectedException thrown = ExpectedException.none();
94 public void before() throws Exception {
95 execution = new DelegateExecutionFake();
96 org.onap.aai.domain.yang.ServiceInstance servInstance = new org.onap.aai.domain.yang.ServiceInstance();
97 servInstance.setServiceInstanceId("TEST");
98 when(bbSetupUtils.getAAIServiceInstanceByName(anyString(), anyObject())).thenReturn(servInstance);
99 workflowAction.setBbInputSetupUtils(bbSetupUtils);
100 workflowAction.setBbInputSetup(bbInputSetup);
106 public void selectExecutionListALaCarteNetworkCreateTest() throws Exception{
107 String gAction = "createInstance";
108 String resource = "Network";
109 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
110 execution.setVariable("requestAction", gAction);
111 String bpmnRequest = new String(Files.readAllBytes(Paths.get("src/test/resources/__files/Macro/ServiceMacroAssign.json")));
112 execution.setVariable("bpmnRequest", bpmnRequest);
113 execution.setVariable("aLaCarte", true);
114 execution.setVariable("apiVersion", "7");
115 execution.setVariable("requestUri", "v6/networks/123");
116 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
117 List<OrchestrationFlow> orchFlows = new LinkedList<>();
118 northBoundRequest.setOrchestrationFlowList(orchFlows);
119 OrchestrationFlow orch1 = new OrchestrationFlow();
120 orch1.setFlowName("AssignNetwork1802BB");
121 orchFlows.add(orch1);
122 OrchestrationFlow orch2 = new OrchestrationFlow();
123 orch2.setFlowName("CreateNetworkBB");
124 orchFlows.add(orch2);
125 OrchestrationFlow orch3 = new OrchestrationFlow();
126 orch3.setFlowName("ActivateNetworkBB");
127 orchFlows.add(orch3);
129 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScope(gAction,resource,true)).thenReturn(northBoundRequest);
132 workflowAction.selectExecutionList(execution);
133 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
134 assertEquals(ebbs.get(0).getBuildingBlock().getBpmnFlowName(),"AssignNetwork1802BB");
135 assertEquals(ebbs.get(1).getBuildingBlock().getBpmnFlowName(),"CreateNetworkBB");
136 assertEquals(ebbs.get(2).getBuildingBlock().getBpmnFlowName(),"ActivateNetworkBB");
140 public void selectExecutionListALaCarteNetworkDeleteTest() throws Exception{
141 String gAction = "deleteInstance";
142 String resource = "Network";
143 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
144 execution.setVariable("requestAction", gAction);
145 String bpmnRequest = new String(Files.readAllBytes(Paths.get("src/test/resources/__files/Macro/ServiceMacroAssign.json")));
146 execution.setVariable("bpmnRequest", bpmnRequest);
147 execution.setVariable("aLaCarte", true);
148 execution.setVariable("apiVersion", "7");
149 execution.setVariable("requestUri", "v6/networks/123");
150 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
151 List<OrchestrationFlow> orchFlows = new LinkedList<>();
152 northBoundRequest.setOrchestrationFlowList(orchFlows);
153 OrchestrationFlow orch1 = new OrchestrationFlow();
154 orch1.setFlowName("DeactivateNetworkBB");
155 orchFlows.add(orch1);
156 OrchestrationFlow orch2 = new OrchestrationFlow();
157 orch2.setFlowName("DeleteNetworkBB");
158 orchFlows.add(orch2);
159 OrchestrationFlow orch3 = new OrchestrationFlow();
160 orch3.setFlowName("UnassignNetwork1802BB");
161 orchFlows.add(orch3);
162 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScope(gAction,resource,true)).thenReturn(northBoundRequest);
163 workflowAction.selectExecutionList(execution);
164 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
165 assertEquals(ebbs.get(0).getBuildingBlock().getBpmnFlowName(),"DeactivateNetworkBB");
166 assertEquals(ebbs.get(1).getBuildingBlock().getBpmnFlowName(),"DeleteNetworkBB");
167 assertEquals(ebbs.get(2).getBuildingBlock().getBpmnFlowName(),"UnassignNetwork1802BB");
171 public void selectExecutionListALaCarteServiceCreateTest() throws Exception{
172 String gAction = "createInstance";
173 String resource = "Service";
174 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
175 execution.setVariable("requestAction", gAction);
176 String bpmnRequest = new String(Files.readAllBytes(Paths.get("src/test/resources/__files/Macro/ServiceMacroAssign.json")));
177 execution.setVariable("bpmnRequest", bpmnRequest);
178 execution.setVariable("aLaCarte", true);
179 execution.setVariable("apiVersion", "7");
180 execution.setVariable("requestUri", "v6/serviceInstances/123");
182 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
183 List<OrchestrationFlow> orchFlows = new LinkedList<>();
184 northBoundRequest.setOrchestrationFlowList(orchFlows);
185 OrchestrationFlow orch1 = new OrchestrationFlow();
186 orch1.setFlowName("AssignServiceInstanceBB");
187 orchFlows.add(orch1);
188 OrchestrationFlow orch2 = new OrchestrationFlow();
189 orch2.setFlowName("ActivateServiceInstanceBB");
190 orchFlows.add(orch2);
191 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScope(gAction,resource,true)).thenReturn(northBoundRequest);
192 workflowAction.selectExecutionList(execution);
193 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
194 assertEquals(ebbs.get(0).getBuildingBlock().getBpmnFlowName(),"AssignServiceInstanceBB");
195 assertEquals(ebbs.get(1).getBuildingBlock().getBpmnFlowName(),"ActivateServiceInstanceBB");
199 * SERVICE MACRO TESTS
202 public void selectExecutionListServiceMacroAssignTest() throws Exception{
203 String gAction = "assignInstance";
204 String resource = "Service";
205 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
206 execution.setVariable("requestAction", gAction);
207 String bpmnRequest = new String(Files.readAllBytes(Paths.get("src/test/resources/__files/Macro/ServiceMacroAssign.json")));
208 execution.setVariable("bpmnRequest", bpmnRequest);
209 execution.setVariable("aLaCarte", false);
210 execution.setVariable("apiVersion", "7");
211 execution.setVariable("requestUri", "v6/serviceInstances/123");
213 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
214 List<OrchestrationFlow> orchFlows = new LinkedList<>();
215 northBoundRequest.setOrchestrationFlowList(orchFlows);
216 OrchestrationFlow orch1 = new OrchestrationFlow();
217 orch1.setFlowName("AssignServiceInstanceBB");
218 orchFlows.add(orch1);
219 OrchestrationFlow orch2 = new OrchestrationFlow();
220 orch2.setFlowName("AssignNetworkBB");
221 orchFlows.add(orch2);
222 OrchestrationFlow orch3 = new OrchestrationFlow();
223 orch3.setFlowName("AssignVnfBB");
224 orchFlows.add(orch3);
225 OrchestrationFlow orch4 = new OrchestrationFlow();
226 orch4.setFlowName("AssignVolumeGroupBB");
227 orchFlows.add(orch4);
228 OrchestrationFlow orch5 = new OrchestrationFlow();
229 orch5.setFlowName("AssignVfModuleBB");
230 orchFlows.add(orch5);
232 VfModuleCustomization vfModuleCustomization = new VfModuleCustomization();
233 vfModuleCustomization.setModelCustomizationUUID("a25e8e8c-58b8-4eec-810c-97dcc1f5cb7f");
234 HeatEnvironment volumeHeatEnv = new HeatEnvironment();
235 vfModuleCustomization.setVolumeHeatEnv(volumeHeatEnv);
236 org.onap.so.db.catalog.beans.VfModule vfModule = new org.onap.so.db.catalog.beans.VfModule();
237 HeatTemplate volumeHeatTemplate = new HeatTemplate();
238 vfModule.setVolumeHeatTemplate(volumeHeatTemplate);
239 vfModuleCustomization.setVfModule(vfModule);
241 VfModuleCustomization vfModuleCustomization2 = new VfModuleCustomization();
242 vfModuleCustomization2.setModelCustomizationUUID("72d9d1cd-f46d-447a-abdb-451d6fb05fa8");
243 HeatEnvironment heatEnvironment = new HeatEnvironment();
244 vfModuleCustomization2.setHeatEnvironment(heatEnvironment);
245 org.onap.so.db.catalog.beans.VfModule vfModule2 = new org.onap.so.db.catalog.beans.VfModule();
246 HeatTemplate moduleHeatTemplate = new HeatTemplate();
247 vfModule2.setModuleHeatTemplate(moduleHeatTemplate);
248 vfModuleCustomization2.setVfModule(vfModule2);
250 VfModuleCustomization vfModuleCustomization3 = vfModuleCustomization2;
251 vfModuleCustomization3.setModelCustomizationUUID("72d9d1cd-f46d-447a-abdb-451d6fb05fa8");
253 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScope(gAction,resource,false)).thenReturn(northBoundRequest);
254 when(catalogDbClient.getVfModuleCustomizationByModelCuztomizationUUID("a25e8e8c-58b8-4eec-810c-97dcc1f5cb7f")).thenReturn(vfModuleCustomization);
255 when(catalogDbClient.getVfModuleCustomizationByModelCuztomizationUUID("72d9d1cd-f46d-447a-abdb-451d6fb05fa8")).thenReturn(vfModuleCustomization2);
256 when(catalogDbClient.getVfModuleCustomizationByModelCuztomizationUUID("da4d4327-fb7d-4311-ac7a-be7ba60cf969")).thenReturn(vfModuleCustomization3);
257 workflowAction.selectExecutionList(execution);
258 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
259 assertEquals(ebbs.get(0).getBuildingBlock().getBpmnFlowName(),"AssignServiceInstanceBB");
260 assertEquals(ebbs.get(1).getBuildingBlock().getBpmnFlowName(),"AssignVnfBB");
261 assertEquals(ebbs.get(2).getBuildingBlock().getBpmnFlowName(),"AssignVolumeGroupBB");
262 assertEquals(ebbs.get(3).getBuildingBlock().getBpmnFlowName(),"AssignVfModuleBB");
263 assertEquals(ebbs.get(4).getBuildingBlock().getBpmnFlowName(),"AssignVfModuleBB");
264 assertEquals(ebbs.get(5).getBuildingBlock().getBpmnFlowName(),"AssignVfModuleBB");
268 public void selectExecutionListServiceMacroActivateTest() throws Exception{
269 String gAction = "activateInstance";
270 String resource = "Service";
271 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
272 execution.setVariable("requestAction", gAction);
273 String bpmnRequest = new String(Files.readAllBytes(Paths.get("src/test/resources/__files/Macro/ServiceMacroActivateDeleteUnassign.json")));
274 execution.setVariable("bpmnRequest", bpmnRequest);
275 execution.setVariable("aLaCarte", false);
276 execution.setVariable("apiVersion", "7");
277 execution.setVariable("requestUri", "v6/serviceInstances/si0");
279 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
280 List<OrchestrationFlow> orchFlows = new LinkedList<>();
281 northBoundRequest.setOrchestrationFlowList(orchFlows);
282 OrchestrationFlow orch1 = new OrchestrationFlow();
283 orch1.setFlowName("CreateNetworkBB");
284 orchFlows.add(orch1);
285 OrchestrationFlow orch2 = new OrchestrationFlow();
286 orch2.setFlowName("ActivateNetworkBB");
287 orchFlows.add(orch2);
288 OrchestrationFlow orch3 = new OrchestrationFlow();
289 orch3.setFlowName("CreateVolumeGroupBB");
290 orchFlows.add(orch3);
291 OrchestrationFlow orch4 = new OrchestrationFlow();
292 orch4.setFlowName("ActivateVolumeGroupBB");
293 orchFlows.add(orch4);
294 OrchestrationFlow orch5 = new OrchestrationFlow();
295 orch5.setFlowName("CreateVfModuleBB");
296 orchFlows.add(orch5);
297 OrchestrationFlow orch6 = new OrchestrationFlow();
298 orch6.setFlowName("ActivateVfModuleBB");
299 orchFlows.add(orch6);
300 OrchestrationFlow orch7 = new OrchestrationFlow();
301 orch7.setFlowName("ActivateVnfBB");
302 orchFlows.add(orch7);
303 OrchestrationFlow orch8 = new OrchestrationFlow();
304 orch8.setFlowName("ActivateServiceInstanceBB");
305 orchFlows.add(orch8);
307 ServiceInstance serviceInstanceAAI = new ServiceInstance();
308 serviceInstanceAAI.setServiceInstanceId("si0");
309 org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance serviceInstanceMSO = new org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance();
310 org.onap.so.bpmn.servicedecomposition.bbobjects.GenericVnf vnf = new org.onap.so.bpmn.servicedecomposition.bbobjects.GenericVnf();
311 vnf.setVnfId("vnf0");
313 org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule vfModule = new org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule();
314 vfModule.setVfModuleId("vfModule0");
315 vnf.getVfModules().add(vfModule);
316 org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule vfModule2 = new org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule();
317 vfModule2.setVfModuleId("vfModule1");
318 vnf.getVfModules().add(vfModule2);
320 org.onap.so.bpmn.servicedecomposition.bbobjects.VolumeGroup volumeGroup = new org.onap.so.bpmn.servicedecomposition.bbobjects.VolumeGroup();
321 volumeGroup.setVolumeGroupId("volumeGroup0");
322 vnf.getVolumeGroups().add(volumeGroup);
324 serviceInstanceMSO.getVnfs().add(vnf);
326 doReturn(serviceInstanceAAI).when(bbSetupUtils).getAAIServiceInstanceById("si0");
327 doReturn(serviceInstanceMSO).when(bbInputSetup).getExistingServiceInstance(serviceInstanceAAI);
328 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScope(gAction,resource,false)).thenReturn(northBoundRequest);
329 workflowAction.selectExecutionList(execution);
330 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
331 assertEquals("CreateVolumeGroupBB", ebbs.get(0).getBuildingBlock().getBpmnFlowName());
332 assertEquals("volumeGroup0", ebbs.get(0).getWorkflowResourceIds().getVolumeGroupId());
333 assertEquals("ActivateVolumeGroupBB", ebbs.get(1).getBuildingBlock().getBpmnFlowName());
334 assertEquals("volumeGroup0", ebbs.get(1).getWorkflowResourceIds().getVolumeGroupId());
335 assertEquals("CreateVfModuleBB", ebbs.get(2).getBuildingBlock().getBpmnFlowName());
336 assertEquals("vfModule0", ebbs.get(2).getWorkflowResourceIds().getVfModuleId());
337 assertEquals("CreateVfModuleBB", ebbs.get(3).getBuildingBlock().getBpmnFlowName());
338 assertEquals("vfModule1", ebbs.get(3).getWorkflowResourceIds().getVfModuleId());
339 assertEquals("ActivateVfModuleBB", ebbs.get(4).getBuildingBlock().getBpmnFlowName());
340 assertEquals("vfModule0", ebbs.get(4).getWorkflowResourceIds().getVfModuleId());
341 assertEquals("ActivateVfModuleBB", ebbs.get(5).getBuildingBlock().getBpmnFlowName());
342 assertEquals("vfModule1", ebbs.get(5).getWorkflowResourceIds().getVfModuleId());
343 assertEquals("ActivateVnfBB", ebbs.get(6).getBuildingBlock().getBpmnFlowName());
344 assertEquals("vnf0", ebbs.get(6).getWorkflowResourceIds().getVnfId());
345 assertEquals("ActivateServiceInstanceBB", ebbs.get(7).getBuildingBlock().getBpmnFlowName());
346 assertEquals("si0", ebbs.get(7).getWorkflowResourceIds().getServiceInstanceId());
351 public void selectExecutionListServiceMacroDeactivateTest() throws Exception{
352 String gAction = "deactivateInstance";
353 String resource = "Service";
354 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
355 execution.setVariable("requestAction", gAction);
356 String bpmnRequest = new String(Files.readAllBytes(Paths.get("src/test/resources/__files/Macro/ServiceMacroActivateDeleteUnassign.json")));
357 execution.setVariable("bpmnRequest", bpmnRequest);
358 execution.setVariable("aLaCarte", false);
359 execution.setVariable("apiVersion", "7");
360 execution.setVariable("requestUri", "v6/serviceInstances/123");
362 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
363 List<OrchestrationFlow> orchFlows = new LinkedList<>();
364 northBoundRequest.setOrchestrationFlowList(orchFlows);
365 OrchestrationFlow orch = new OrchestrationFlow();
366 orch.setFlowName("DeactivateServiceInstanceBB");
369 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScope(gAction,resource,false)).thenReturn(northBoundRequest);
370 workflowAction.selectExecutionList(execution);
371 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
372 assertEquals(ebbs.get(0).getBuildingBlock().getBpmnFlowName(),"DeactivateServiceInstanceBB");
376 public void selectExecutionListServiceMacroEmptyServiceTest() throws Exception{
377 String gAction = "createInstance";
378 String resource = "Service";
379 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
380 execution.setVariable("requestAction", gAction);
381 String bpmnRequest = new String(Files.readAllBytes(Paths.get("src/test/resources/__files/Macro/ServiceMacroActivateDeleteUnassign.json")));
382 execution.setVariable("bpmnRequest", bpmnRequest);
383 execution.setVariable("aLaCarte", false);
384 execution.setVariable("apiVersion", "7");
385 execution.setVariable("requestUri", "v6/serviceInstances/123");
387 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
388 northBoundRequest.setIsToplevelflow(true);
389 List<OrchestrationFlow> orchFlows = new LinkedList<>();
390 northBoundRequest.setOrchestrationFlowList(orchFlows);
391 OrchestrationFlow orch1 = new OrchestrationFlow();
392 orch1.setFlowName("AssignServiceInstanceBB");
393 orchFlows.add(orch1);
394 OrchestrationFlow orch2 = new OrchestrationFlow();
395 orch2.setFlowName("CreateNetworkCollectionBB");
396 orchFlows.add(orch2);
397 OrchestrationFlow orch3 = new OrchestrationFlow();
398 orch3.setFlowName("AssignNetworkBB");
399 orchFlows.add(orch3);
400 OrchestrationFlow orch4 = new OrchestrationFlow();
401 orch4.setFlowName("AssignVnfBB");
402 orchFlows.add(orch4);
403 OrchestrationFlow orch5 = new OrchestrationFlow();
404 orch5.setFlowName("AssignVolumeGroupBB");
405 orchFlows.add(orch5);
406 OrchestrationFlow orch6 = new OrchestrationFlow();
407 orch6.setFlowName("AssignVfModuleBB");
408 orchFlows.add(orch6);
409 OrchestrationFlow orch7 = new OrchestrationFlow();
410 orch7.setFlowName("CreateNetworkBB");
411 orchFlows.add(orch7);
412 OrchestrationFlow orch8 = new OrchestrationFlow();
413 orch8.setFlowName("ActivateNetworkBB");
414 orchFlows.add(orch8);
415 OrchestrationFlow orch9 = new OrchestrationFlow();
416 orch9.setFlowName("CreateVolumeGroupBB");
417 orchFlows.add(orch9);
418 OrchestrationFlow orch10 = new OrchestrationFlow();
419 orch10.setFlowName("ActivateVolumeGroupBB");
420 orchFlows.add(orch10);
421 OrchestrationFlow orch11 = new OrchestrationFlow();
422 orch11.setFlowName("CreateVfModuleBB");
423 orchFlows.add(orch11);
424 OrchestrationFlow orch12 = new OrchestrationFlow();
425 orch12.setFlowName("ActivateVfModuleBB");
426 orchFlows.add(orch12);
427 OrchestrationFlow orch13 = new OrchestrationFlow();
428 orch13.setFlowName("AssignFabricConfigurationBB");
429 orchFlows.add(orch13);
430 OrchestrationFlow orch14 = new OrchestrationFlow();
431 orch14.setFlowName("ActivateFabricConfigurationBB");
432 orchFlows.add(orch14);
433 OrchestrationFlow orch15 = new OrchestrationFlow();
434 orch15.setFlowName("ActivateVnfBB");
435 orchFlows.add(orch15);
436 OrchestrationFlow orch16 = new OrchestrationFlow();
437 orch16.setFlowName("ActivateNetworkCollectionBB");
438 orchFlows.add(orch16);
439 OrchestrationFlow orch17 = new OrchestrationFlow();
440 orch17.setFlowName("ActivateServiceInstanceBB");
441 orchFlows.add(orch17);
443 Service service = new Service();
444 doReturn(service).when(catalogDbClient).getServiceByID("3c40d244-808e-42ca-b09a-256d83d19d0a");
445 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScope(gAction,resource,false)).thenReturn(northBoundRequest);
446 workflowAction.selectExecutionList(execution);
447 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
448 assertEquals(ebbs.get(0).getBuildingBlock().getBpmnFlowName(),"AssignServiceInstanceBB");
449 assertEquals(ebbs.get(1).getBuildingBlock().getBpmnFlowName(),"ActivateServiceInstanceBB");
453 public void selectExecutionListServiceMacroCreateJustNetworkTest() throws Exception{
454 String gAction = "createInstance";
455 String resource = "Service";
456 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
457 execution.setVariable("requestAction", gAction);
458 String bpmnRequest = new String(Files.readAllBytes(Paths.get("src/test/resources/__files/Macro/ServiceMacroActivateDeleteUnassign.json")));
459 execution.setVariable("bpmnRequest", bpmnRequest);
460 execution.setVariable("aLaCarte", false);
461 execution.setVariable("apiVersion", "7");
462 execution.setVariable("requestUri", "v6/serviceInstances/123");
464 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
465 northBoundRequest.setIsToplevelflow(true);
466 List<OrchestrationFlow> orchFlows = new LinkedList<>();
467 northBoundRequest.setOrchestrationFlowList(orchFlows);
468 OrchestrationFlow orch1 = new OrchestrationFlow();
469 orch1.setFlowName("AssignServiceInstanceBB");
470 orchFlows.add(orch1);
471 OrchestrationFlow orch2 = new OrchestrationFlow();
472 orch2.setFlowName("CreateNetworkCollectionBB");
473 orchFlows.add(orch2);
474 OrchestrationFlow orch3 = new OrchestrationFlow();
475 orch3.setFlowName("AssignNetworkBB");
476 orchFlows.add(orch3);
477 OrchestrationFlow orch4 = new OrchestrationFlow();
478 orch4.setFlowName("AssignVnfBB");
479 orchFlows.add(orch4);
480 OrchestrationFlow orch5 = new OrchestrationFlow();
481 orch5.setFlowName("AssignVolumeGroupBB");
482 orchFlows.add(orch5);
483 OrchestrationFlow orch6 = new OrchestrationFlow();
484 orch6.setFlowName("AssignVfModuleBB");
485 orchFlows.add(orch6);
486 OrchestrationFlow orch7 = new OrchestrationFlow();
487 orch7.setFlowName("CreateNetworkBB");
488 orchFlows.add(orch7);
489 OrchestrationFlow orch8 = new OrchestrationFlow();
490 orch8.setFlowName("ActivateNetworkBB");
491 orchFlows.add(orch8);
492 OrchestrationFlow orch9 = new OrchestrationFlow();
493 orch9.setFlowName("CreateVolumeGroupBB");
494 orchFlows.add(orch9);
495 OrchestrationFlow orch10 = new OrchestrationFlow();
496 orch10.setFlowName("ActivateVolumeGroupBB");
497 orchFlows.add(orch10);
498 OrchestrationFlow orch11 = new OrchestrationFlow();
499 orch11.setFlowName("CreateVfModuleBB");
500 orchFlows.add(orch11);
501 OrchestrationFlow orch12 = new OrchestrationFlow();
502 orch12.setFlowName("ActivateVfModuleBB");
503 orchFlows.add(orch12);
504 OrchestrationFlow orch13 = new OrchestrationFlow();
505 orch13.setFlowName("ActivateVnfBB");
506 orchFlows.add(orch13);
507 OrchestrationFlow orch14 = new OrchestrationFlow();
508 orch14.setFlowName("ActivateNetworkCollectionBB");
509 orchFlows.add(orch14);
510 OrchestrationFlow orch15 = new OrchestrationFlow();
511 orch15.setFlowName("ActivateServiceInstanceBB");
512 orchFlows.add(orch15);
514 Service service = new Service();
515 NetworkResourceCustomization networkCustomization = new NetworkResourceCustomization();
516 networkCustomization.setModelCustomizationUUID("1234");
517 service.getNetworkCustomizations().add(networkCustomization);
518 doReturn(service).when(catalogDbClient).getServiceByID("3c40d244-808e-42ca-b09a-256d83d19d0a");
519 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScope(gAction,resource,false)).thenReturn(northBoundRequest);
520 workflowAction.selectExecutionList(execution);
521 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
522 assertEquals(ebbs.get(0).getBuildingBlock().getBpmnFlowName(),"AssignServiceInstanceBB");
523 assertEquals(ebbs.get(1).getBuildingBlock().getBpmnFlowName(),"AssignNetworkBB");
524 assertEquals(ebbs.get(2).getBuildingBlock().getBpmnFlowName(),"CreateNetworkBB");
525 assertEquals(ebbs.get(3).getBuildingBlock().getBpmnFlowName(),"ActivateNetworkBB");
526 assertEquals(ebbs.get(4).getBuildingBlock().getBpmnFlowName(),"ActivateServiceInstanceBB");
530 public void selectExecutionListServiceMacroCreateWithNetworkCollectionTest() throws Exception{
531 String gAction = "createInstance";
532 String resource = "Service";
533 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
534 execution.setVariable("requestAction", gAction);
535 String bpmnRequest = new String(Files.readAllBytes(Paths.get("src/test/resources/__files/Macro/ServiceMacroActivateDeleteUnassign.json")));
536 execution.setVariable("bpmnRequest", bpmnRequest);
537 execution.setVariable("aLaCarte", false);
538 execution.setVariable("apiVersion", "7");
539 execution.setVariable("requestUri", "v6/serviceInstances/123");
541 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
542 northBoundRequest.setIsToplevelflow(true);
543 List<OrchestrationFlow> orchFlows = new LinkedList<>();
544 northBoundRequest.setOrchestrationFlowList(orchFlows);
545 OrchestrationFlow orch1 = new OrchestrationFlow();
546 orch1.setFlowName("AssignServiceInstanceBB");
547 orchFlows.add(orch1);
548 OrchestrationFlow orch2 = new OrchestrationFlow();
549 orch2.setFlowName("CreateNetworkCollectionBB");
550 orchFlows.add(orch2);
551 OrchestrationFlow orch3 = new OrchestrationFlow();
552 orch3.setFlowName("AssignNetworkBB");
553 orchFlows.add(orch3);
554 OrchestrationFlow orch4 = new OrchestrationFlow();
555 orch4.setFlowName("AssignVnfBB");
556 orchFlows.add(orch4);
557 OrchestrationFlow orch5 = new OrchestrationFlow();
558 orch5.setFlowName("AssignVolumeGroupBB");
559 orchFlows.add(orch5);
560 OrchestrationFlow orch6 = new OrchestrationFlow();
561 orch6.setFlowName("AssignVfModuleBB");
562 orchFlows.add(orch6);
563 OrchestrationFlow orch7 = new OrchestrationFlow();
564 orch7.setFlowName("CreateNetworkBB");
565 orchFlows.add(orch7);
566 OrchestrationFlow orch8 = new OrchestrationFlow();
567 orch8.setFlowName("ActivateNetworkBB");
568 orchFlows.add(orch8);
569 OrchestrationFlow orch9 = new OrchestrationFlow();
570 orch9.setFlowName("CreateVolumeGroupBB");
571 orchFlows.add(orch9);
572 OrchestrationFlow orch10 = new OrchestrationFlow();
573 orch10.setFlowName("ActivateVolumeGroupBB");
574 orchFlows.add(orch10);
575 OrchestrationFlow orch11 = new OrchestrationFlow();
576 orch11.setFlowName("CreateVfModuleBB");
577 orchFlows.add(orch11);
578 OrchestrationFlow orch12 = new OrchestrationFlow();
579 orch12.setFlowName("ActivateVfModuleBB");
580 orchFlows.add(orch12);
581 OrchestrationFlow orch13 = new OrchestrationFlow();
582 orch13.setFlowName("ActivateVnfBB");
583 orchFlows.add(orch13);
584 OrchestrationFlow orch14 = new OrchestrationFlow();
585 orch14.setFlowName("ActivateNetworkCollectionBB");
586 orchFlows.add(orch14);
587 OrchestrationFlow orch15 = new OrchestrationFlow();
588 orch15.setFlowName("ActivateServiceInstanceBB");
589 orchFlows.add(orch15);
591 Service service = new Service();
592 List<NetworkResourceCustomization> networkCustomizations = new ArrayList<>();
593 NetworkResourceCustomization networkCust = new NetworkResourceCustomization();
594 networkCust.setModelCustomizationUUID("123");
595 networkCustomizations.add(networkCust);
596 service.setNetworkCustomizations(networkCustomizations);
597 NetworkCollectionResourceCustomization collectionResourceCustomization = new NetworkCollectionResourceCustomization();
598 collectionResourceCustomization.setModelCustomizationUUID("123");
600 CollectionResource collectionResource = new CollectionResource();
601 collectionResource.setToscaNodeType("NetworkCollection");
602 InstanceGroup instanceGroup = new InstanceGroup();
603 instanceGroup.setToscaNodeType("NetworkCollectionResource");
604 instanceGroup.setCollectionNetworkResourceCustomizations(new ArrayList<>());
605 CollectionNetworkResourceCustomization collectionNetworkResourceCust = new CollectionNetworkResourceCustomization();
606 collectionNetworkResourceCust.setModelCustomizationUUID("123");
607 collectionNetworkResourceCust.setNetworkResourceCustomization(collectionResourceCustomization);
608 instanceGroup.getCollectionNetworkResourceCustomizations().add(collectionNetworkResourceCust );
609 List<CollectionResourceInstanceGroupCustomization> collectionInstanceGroupCustomizations = new ArrayList<>();
610 CollectionResourceInstanceGroupCustomization collectionInstanceGroupCustomization = new CollectionResourceInstanceGroupCustomization();
611 collectionInstanceGroupCustomization.setModelCustomizationUUID("123");
612 collectionInstanceGroupCustomization.setSubInterfaceNetworkQuantity(3);
613 collectionInstanceGroupCustomizations.add(collectionInstanceGroupCustomization);
614 collectionInstanceGroupCustomization.setInstanceGroup(instanceGroup);
615 collectionInstanceGroupCustomization.setCollectionResourceCust(collectionResourceCustomization);
616 instanceGroup.setCollectionInstanceGroupCustomizations(collectionInstanceGroupCustomizations);
617 collectionResource.setInstanceGroup(instanceGroup);
618 collectionResourceCustomization.setCollectionResource(collectionResource);;
619 service.getCollectionResourceCustomizations().add(collectionResourceCustomization);
620 doReturn(service).when(catalogDbClient).getServiceByID("3c40d244-808e-42ca-b09a-256d83d19d0a");
621 doReturn(collectionResourceCustomization).when(catalogDbClient).getNetworkCollectionResourceCustomizationByID("123");
622 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScope(gAction,resource,false)).thenReturn(northBoundRequest);
623 workflowAction.selectExecutionList(execution);
624 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
625 assertEquals(ebbs.get(0).getBuildingBlock().getBpmnFlowName(),"AssignServiceInstanceBB");
626 assertEquals(ebbs.get(1).getBuildingBlock().getBpmnFlowName(),"CreateNetworkCollectionBB");
627 assertEquals(ebbs.get(2).getBuildingBlock().getBpmnFlowName(),"AssignNetworkBB");
628 assertEquals("Network id not empty", !ebbs.get(2).getWorkflowResourceIds().getNetworkId().isEmpty(), true);
629 assertEquals(ebbs.get(3).getBuildingBlock().getBpmnFlowName(),"CreateNetworkBB");
630 assertEquals("Network id not empty", !ebbs.get(3).getWorkflowResourceIds().getNetworkId().isEmpty(), true);
631 assertEquals(ebbs.get(4).getBuildingBlock().getBpmnFlowName(),"ActivateNetworkBB");
632 assertEquals("Network id not empty", !ebbs.get(4).getWorkflowResourceIds().getNetworkId().isEmpty(), true);
633 assertEquals("Network id same for AssignNetworkBB CreateNetworkBB ActivateNetworkBB",
634 ebbs.get(2).getWorkflowResourceIds().getNetworkId() == ebbs.get(3).getWorkflowResourceIds().getNetworkId()
635 && ebbs.get(3).getWorkflowResourceIds().getNetworkId() == ebbs.get(4).getWorkflowResourceIds().getNetworkId(), true);
636 assertEquals(ebbs.get(5).getBuildingBlock().getBpmnFlowName(),"AssignNetworkBB");
637 assertEquals("Network id not empty", !ebbs.get(5).getWorkflowResourceIds().getNetworkId().isEmpty(), true);
638 assertEquals(ebbs.get(6).getBuildingBlock().getBpmnFlowName(),"CreateNetworkBB");
639 assertEquals("Network id not empty", !ebbs.get(6).getWorkflowResourceIds().getNetworkId().isEmpty(), true);
640 assertEquals(ebbs.get(7).getBuildingBlock().getBpmnFlowName(),"ActivateNetworkBB");
641 assertEquals("Network id not empty", !ebbs.get(7).getWorkflowResourceIds().getNetworkId().isEmpty(), true);
642 assertEquals("Network id same for AssignNetworkBB CreateNetworkBB ActivateNetworkBB",
643 ebbs.get(5).getWorkflowResourceIds().getNetworkId() == ebbs.get(6).getWorkflowResourceIds().getNetworkId()
644 && ebbs.get(6).getWorkflowResourceIds().getNetworkId() == ebbs.get(7).getWorkflowResourceIds().getNetworkId(), true);
645 assertEquals(ebbs.get(8).getBuildingBlock().getBpmnFlowName(),"AssignNetworkBB");
646 assertEquals("Network id not empty", !ebbs.get(8).getWorkflowResourceIds().getNetworkId().isEmpty(), true);
647 assertEquals(ebbs.get(9).getBuildingBlock().getBpmnFlowName(),"CreateNetworkBB");
648 assertEquals("Network id not empty", !ebbs.get(9).getWorkflowResourceIds().getNetworkId().isEmpty(), true);
649 assertEquals(ebbs.get(10).getBuildingBlock().getBpmnFlowName(),"ActivateNetworkBB");
650 assertEquals("Network id not empty", !ebbs.get(10).getWorkflowResourceIds().getNetworkId().isEmpty(), true);
651 assertEquals("Network id same for AssignNetworkBB CreateNetworkBB ActivateNetworkBB",
652 ebbs.get(8).getWorkflowResourceIds().getNetworkId() == ebbs.get(9).getWorkflowResourceIds().getNetworkId()
653 && ebbs.get(9).getWorkflowResourceIds().getNetworkId() == ebbs.get(10).getWorkflowResourceIds().getNetworkId(), true);
654 assertEquals(ebbs.get(11).getBuildingBlock().getBpmnFlowName(),"ActivateNetworkCollectionBB");
655 assertEquals(ebbs.get(12).getBuildingBlock().getBpmnFlowName(),"ActivateServiceInstanceBB");
659 public void selectExecutionListServiceMacroCreateWithUserParams() throws Exception{
660 String gAction = "createInstance";
661 String resource = "Service";
662 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
663 execution.setVariable("requestAction", gAction);
664 String bpmnRequest = new String(Files.readAllBytes(Paths.get("src/test/resources/__files/Macro/ServiceMacroAssign.json")));
665 execution.setVariable("bpmnRequest", bpmnRequest);
666 execution.setVariable("aLaCarte", false);
667 execution.setVariable("apiVersion", "7");
668 execution.setVariable("requestUri", "v6/serviceInstances/123");
670 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
671 List<OrchestrationFlow> orchFlows = new LinkedList<>();
672 northBoundRequest.setOrchestrationFlowList(orchFlows);
673 OrchestrationFlow orch1 = new OrchestrationFlow();
674 orch1.setFlowName("AssignServiceInstanceBB");
675 orchFlows.add(orch1);
676 OrchestrationFlow orch2 = new OrchestrationFlow();
677 orch2.setFlowName("CreateNetworkCollectionBB");
678 orchFlows.add(orch2);
679 OrchestrationFlow orch3 = new OrchestrationFlow();
680 orch3.setFlowName("AssignNetworkBB");
681 orchFlows.add(orch3);
682 OrchestrationFlow orch4 = new OrchestrationFlow();
683 orch4.setFlowName("AssignVnfBB");
684 orchFlows.add(orch4);
685 OrchestrationFlow orch5 = new OrchestrationFlow();
686 orch5.setFlowName("AssignVolumeGroupBB");
687 orchFlows.add(orch5);
688 OrchestrationFlow orch6 = new OrchestrationFlow();
689 orch6.setFlowName("AssignVfModuleBB");
690 orchFlows.add(orch6);
691 OrchestrationFlow orch7 = new OrchestrationFlow();
692 orch7.setFlowName("CreateNetworkBB");
693 orchFlows.add(orch7);
694 OrchestrationFlow orch8 = new OrchestrationFlow();
695 orch8.setFlowName("ActivateNetworkBB");
696 orchFlows.add(orch8);
697 OrchestrationFlow orch9 = new OrchestrationFlow();
698 orch9.setFlowName("CreateVolumeGroupBB");
699 orchFlows.add(orch9);
700 OrchestrationFlow orch10 = new OrchestrationFlow();
701 orch10.setFlowName("ActivateVolumeGroupBB");
702 orchFlows.add(orch10);
703 OrchestrationFlow orch11 = new OrchestrationFlow();
704 orch11.setFlowName("CreateVfModuleBB");
705 orchFlows.add(orch11);
706 OrchestrationFlow orch12 = new OrchestrationFlow();
707 orch12.setFlowName("ActivateVfModuleBB");
708 orchFlows.add(orch12);
709 OrchestrationFlow orch13 = new OrchestrationFlow();
710 orch13.setFlowName("ActivateVnfBB");
711 orchFlows.add(orch13);
712 OrchestrationFlow orch14 = new OrchestrationFlow();
713 orch14.setFlowName("ActivateNetworkCollectionBB");
714 orchFlows.add(orch14);
715 OrchestrationFlow orch15 = new OrchestrationFlow();
716 orch15.setFlowName("ActivateServiceInstanceBB");
717 orchFlows.add(orch15);
719 Service service = new Service();
720 service.setModelUUID("3c40d244-808e-42ca-b09a-256d83d19d0a");
722 VfModuleCustomization vfModuleCustomization = new VfModuleCustomization();
723 vfModuleCustomization.setModelCustomizationUUID("a25e8e8c-58b8-4eec-810c-97dcc1f5cb7f");
724 HeatEnvironment volumeHeatEnv = new HeatEnvironment();
725 vfModuleCustomization.setVolumeHeatEnv(volumeHeatEnv);
726 org.onap.so.db.catalog.beans.VfModule vfModule = new org.onap.so.db.catalog.beans.VfModule();
727 HeatTemplate volumeHeatTemplate = new HeatTemplate();
728 vfModule.setVolumeHeatTemplate(volumeHeatTemplate);
729 vfModuleCustomization.setVfModule(vfModule);
731 VfModuleCustomization vfModuleCustomization2 = new VfModuleCustomization();
732 vfModuleCustomization2.setModelCustomizationUUID("72d9d1cd-f46d-447a-abdb-451d6fb05fa8");
733 HeatEnvironment heatEnvironment = new HeatEnvironment();
734 vfModuleCustomization2.setHeatEnvironment(heatEnvironment);
735 org.onap.so.db.catalog.beans.VfModule vfModule2 = new org.onap.so.db.catalog.beans.VfModule();
736 HeatTemplate moduleHeatTemplate = new HeatTemplate();
737 vfModule2.setModuleHeatTemplate(moduleHeatTemplate);
738 vfModuleCustomization2.setVfModule(vfModule2);
740 VfModuleCustomization vfModuleCustomization3 = vfModuleCustomization2;
741 vfModuleCustomization3.setModelCustomizationUUID("72d9d1cd-f46d-447a-abdb-451d6fb05fa8");
743 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScope(gAction,resource,false)).thenReturn(northBoundRequest);
744 when(catalogDbClient.getVfModuleCustomizationByModelCuztomizationUUID("a25e8e8c-58b8-4eec-810c-97dcc1f5cb7f")).thenReturn(vfModuleCustomization);
745 when(catalogDbClient.getVfModuleCustomizationByModelCuztomizationUUID("72d9d1cd-f46d-447a-abdb-451d6fb05fa8")).thenReturn(vfModuleCustomization2);
746 when(catalogDbClient.getVfModuleCustomizationByModelCuztomizationUUID("da4d4327-fb7d-4311-ac7a-be7ba60cf969")).thenReturn(vfModuleCustomization3);
747 when(catalogDbClient.getServiceByID("3c40d244-808e-42ca-b09a-256d83d19d0a")).thenReturn(service);
748 workflowAction.selectExecutionList(execution);
749 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
751 assertEquals(ebbs.get(0).getBuildingBlock().getBpmnFlowName(),"AssignServiceInstanceBB");
752 assertEquals(3,ebbs.get(0).getWorkflowResourceIds().getServiceInstanceId().length());
753 assertEquals(ebbs.get(1).getBuildingBlock().getBpmnFlowName(),"AssignVnfBB");
754 assertEquals(UUID.randomUUID().toString().length(),ebbs.get(1).getWorkflowResourceIds().getVnfId().length());
755 assertEquals(ebbs.get(2).getBuildingBlock().getBpmnFlowName(),"AssignVolumeGroupBB");
756 assertEquals(UUID.randomUUID().toString().length(),ebbs.get(2).getWorkflowResourceIds().getVolumeGroupId().length());
757 assertEquals(ebbs.get(3).getBuildingBlock().getBpmnFlowName(),"AssignVfModuleBB");
758 assertEquals(UUID.randomUUID().toString().length(),ebbs.get(3).getWorkflowResourceIds().getVfModuleId().length());
759 assertEquals(ebbs.get(4).getBuildingBlock().getBpmnFlowName(),"AssignVfModuleBB");
760 assertEquals(UUID.randomUUID().toString().length(),ebbs.get(4).getWorkflowResourceIds().getVfModuleId().length());
761 assertEquals(ebbs.get(5).getBuildingBlock().getBpmnFlowName(),"AssignVfModuleBB");
762 assertEquals(UUID.randomUUID().toString().length(),ebbs.get(5).getWorkflowResourceIds().getVfModuleId().length());
763 assertEquals(ebbs.get(6).getBuildingBlock().getBpmnFlowName(),"CreateVolumeGroupBB");
764 assertEquals(UUID.randomUUID().toString().length(),ebbs.get(6).getWorkflowResourceIds().getVolumeGroupId().length());
765 assertEquals(ebbs.get(7).getBuildingBlock().getBpmnFlowName(),"ActivateVolumeGroupBB");
766 assertEquals(UUID.randomUUID().toString().length(),ebbs.get(7).getWorkflowResourceIds().getVolumeGroupId().length());
767 assertEquals(ebbs.get(8).getBuildingBlock().getBpmnFlowName(),"CreateVfModuleBB");
768 assertEquals(UUID.randomUUID().toString().length(),ebbs.get(8).getWorkflowResourceIds().getVfModuleId().length());
769 assertEquals(ebbs.get(9).getBuildingBlock().getBpmnFlowName(),"CreateVfModuleBB");
770 assertEquals(UUID.randomUUID().toString().length(),ebbs.get(9).getWorkflowResourceIds().getVfModuleId().length());
771 assertEquals(ebbs.get(10).getBuildingBlock().getBpmnFlowName(),"CreateVfModuleBB");
772 assertEquals(UUID.randomUUID().toString().length(),ebbs.get(10).getWorkflowResourceIds().getVfModuleId().length());
773 assertEquals(ebbs.get(11).getBuildingBlock().getBpmnFlowName(),"ActivateVfModuleBB");
774 assertEquals(UUID.randomUUID().toString().length(),ebbs.get(11).getWorkflowResourceIds().getVfModuleId().length());
775 assertEquals(ebbs.get(12).getBuildingBlock().getBpmnFlowName(),"ActivateVfModuleBB");
776 assertEquals(UUID.randomUUID().toString().length(),ebbs.get(12).getWorkflowResourceIds().getVfModuleId().length());
777 assertEquals(ebbs.get(13).getBuildingBlock().getBpmnFlowName(),"ActivateVfModuleBB");
778 assertEquals(UUID.randomUUID().toString().length(),ebbs.get(13).getWorkflowResourceIds().getVfModuleId().length());
779 assertEquals(ebbs.get(14).getBuildingBlock().getBpmnFlowName(),"ActivateVnfBB");
780 assertEquals(UUID.randomUUID().toString().length(),ebbs.get(14).getWorkflowResourceIds().getVnfId().length());
781 assertEquals(ebbs.get(15).getBuildingBlock().getBpmnFlowName(),"ActivateServiceInstanceBB");
782 assertEquals(3,ebbs.get(0).getWorkflowResourceIds().getServiceInstanceId().length());
783 assertEquals(true, execution.getVariable("homing"));
787 public void selectExecutionListServiceMacroDeleteTest() throws Exception{
788 String gAction = "deleteInstance";
789 String resource = "Service";
790 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
791 execution.setVariable("requestAction", gAction);
792 String bpmnRequest = new String(Files.readAllBytes(Paths.get("src/test/resources/__files/Macro/ServiceMacroActivateDeleteUnassign.json")));
793 execution.setVariable("bpmnRequest", bpmnRequest);
794 execution.setVariable("aLaCarte", false);
795 execution.setVariable("apiVersion", "7");
796 execution.setVariable("requestUri", "v6/serviceInstances/123");
798 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
799 List<OrchestrationFlow> orchFlows = new LinkedList<>();
800 northBoundRequest.setOrchestrationFlowList(orchFlows);
801 OrchestrationFlow orch3 = new OrchestrationFlow();
802 orch3.setFlowName("DeactivateVfModuleBB");
803 orchFlows.add(orch3);
804 OrchestrationFlow orch4 = new OrchestrationFlow();
805 orch4.setFlowName("DeleteVfModuleBB");
806 orchFlows.add(orch4);
807 OrchestrationFlow orch5 = new OrchestrationFlow();
808 orch5.setFlowName("DeactivateVolumeGroupBB");
809 orchFlows.add(orch5);
810 OrchestrationFlow orch6 = new OrchestrationFlow();
811 orch6.setFlowName("DeleteVolumeGroupBB");
812 orchFlows.add(orch6);
813 OrchestrationFlow orch7 = new OrchestrationFlow();
814 orch7.setFlowName("DeactivateVnfBB");
815 orchFlows.add(orch7);
816 OrchestrationFlow orch8 = new OrchestrationFlow();
817 orch8.setFlowName("DeactivateNetworkBB");
818 orchFlows.add(orch8);
819 OrchestrationFlow orch9 = new OrchestrationFlow();
820 orch9.setFlowName("DeleteNetworkBB");
821 orchFlows.add(orch9);
822 OrchestrationFlow orch10 = new OrchestrationFlow();
823 orch10.setFlowName("DeleteNetworkCollectionBB");
824 orchFlows.add(orch10);
825 OrchestrationFlow orch11 = new OrchestrationFlow();
826 orch11.setFlowName("DeactivateServiceInstanceBB");
827 orchFlows.add(orch11);
828 OrchestrationFlow orch12 = new OrchestrationFlow();
829 orch12.setFlowName("UnassignVfModuleBB");
830 orchFlows.add(orch12);
831 OrchestrationFlow orch13 = new OrchestrationFlow();
832 orch13.setFlowName("UnassignVolumeGroupBB");
833 orchFlows.add(orch13);
834 OrchestrationFlow orch14 = new OrchestrationFlow();
835 orch14.setFlowName("UnassignVnfBB");
836 orchFlows.add(orch14);
837 OrchestrationFlow orch15 = new OrchestrationFlow();
838 orch15.setFlowName("UnassignNetworkBB");
839 orchFlows.add(orch15);
840 OrchestrationFlow orch16 = new OrchestrationFlow();
841 orch16.setFlowName("UnassignServiceInstanceBB");
842 orchFlows.add(orch16);
844 ServiceInstance serviceInstanceAAI = new ServiceInstance();
845 serviceInstanceAAI.setServiceInstanceId("aaisi123");
846 org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance serviceInstanceMSO = new org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance();
847 org.onap.so.bpmn.servicedecomposition.bbobjects.GenericVnf vnf = new org.onap.so.bpmn.servicedecomposition.bbobjects.GenericVnf();
848 vnf.setVnfId("vnfId123");
850 org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule vfModule = new org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule();
851 vfModule.setVfModuleId("vfModule1");
852 vnf.getVfModules().add(vfModule);
853 org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule vfModule2 = new org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule();
854 vfModule2.setVfModuleId("vfModule2");
855 vnf.getVfModules().add(vfModule2);
857 org.onap.so.bpmn.servicedecomposition.bbobjects.VolumeGroup volumeGroup = new org.onap.so.bpmn.servicedecomposition.bbobjects.VolumeGroup();
858 volumeGroup.setVolumeGroupId("vg123");
859 vnf.getVolumeGroups().add(volumeGroup);
861 serviceInstanceMSO.getVnfs().add(vnf);
863 doReturn(serviceInstanceAAI).when(bbSetupUtils).getAAIServiceInstanceById("123");
864 doReturn(serviceInstanceMSO).when(bbInputSetup).getExistingServiceInstance(serviceInstanceAAI);
865 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScope(gAction,resource,false)).thenReturn(northBoundRequest);
866 workflowAction.selectExecutionList(execution);
867 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
868 assertEquals(ebbs.get(0).getBuildingBlock().getBpmnFlowName(),"DeactivateVfModuleBB");
869 assertEquals(ebbs.get(1).getBuildingBlock().getBpmnFlowName(),"DeactivateVfModuleBB");
870 assertEquals(ebbs.get(2).getBuildingBlock().getBpmnFlowName(),"DeleteVfModuleBB");
871 assertEquals(ebbs.get(3).getBuildingBlock().getBpmnFlowName(),"DeleteVfModuleBB");
872 assertEquals(ebbs.get(4).getBuildingBlock().getBpmnFlowName(),"DeactivateVolumeGroupBB");
873 assertEquals(ebbs.get(5).getBuildingBlock().getBpmnFlowName(),"DeleteVolumeGroupBB");
874 assertEquals(ebbs.get(6).getBuildingBlock().getBpmnFlowName(),"DeactivateVnfBB");
875 assertEquals(ebbs.get(7).getBuildingBlock().getBpmnFlowName(),"DeactivateServiceInstanceBB");
876 assertEquals(ebbs.get(8).getBuildingBlock().getBpmnFlowName(),"UnassignVfModuleBB");
877 assertEquals(ebbs.get(9).getBuildingBlock().getBpmnFlowName(),"UnassignVfModuleBB");
878 assertEquals(ebbs.get(10).getBuildingBlock().getBpmnFlowName(),"UnassignVolumeGroupBB");
879 assertEquals(ebbs.get(11).getBuildingBlock().getBpmnFlowName(),"UnassignVnfBB");
880 assertEquals(ebbs.get(12).getBuildingBlock().getBpmnFlowName(),"UnassignServiceInstanceBB");
884 public void selectExecutionListServiceMacroUnassignTest() throws Exception{
885 String gAction = "unassignInstance";
886 String resource = "Service";
887 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
888 execution.setVariable("requestAction", gAction);
889 String bpmnRequest = new String(Files.readAllBytes(Paths.get("src/test/resources/__files/Macro/ServiceMacroActivateDeleteUnassign.json")));
890 execution.setVariable("bpmnRequest", bpmnRequest);
891 execution.setVariable("aLaCarte", false);
892 execution.setVariable("apiVersion", "7");
893 execution.setVariable("requestUri", "v6/serviceInstances/123");
895 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
896 List<OrchestrationFlow> orchFlows = new LinkedList<>();
897 northBoundRequest.setOrchestrationFlowList(orchFlows);
898 OrchestrationFlow orch1 = new OrchestrationFlow();
899 orch1.setFlowName("UnassignVfModuleBB");
900 orchFlows.add(orch1);
901 OrchestrationFlow orch2 = new OrchestrationFlow();
902 orch2.setFlowName("UnassignVolumeGroupBB");
903 orchFlows.add(orch2);
904 OrchestrationFlow orch3 = new OrchestrationFlow();
905 orch3.setFlowName("UnassignVnfBB");
906 orchFlows.add(orch3);
907 OrchestrationFlow orch4 = new OrchestrationFlow();
908 orch4.setFlowName("UnassignNetworkBB");
909 orchFlows.add(orch4);
910 OrchestrationFlow orch5 = new OrchestrationFlow();
911 orch5.setFlowName("UnassignServiceInstanceBB");
912 orchFlows.add(orch5);
914 ServiceInstance serviceInstanceAAI = new ServiceInstance();
915 serviceInstanceAAI.setServiceInstanceId("aaisi123");
916 org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance serviceInstanceMSO = new org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance();
917 org.onap.so.bpmn.servicedecomposition.bbobjects.GenericVnf vnf = new org.onap.so.bpmn.servicedecomposition.bbobjects.GenericVnf();
918 vnf.setVnfId("vnfId123");
920 org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule vfModule = new org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule();
921 vfModule.setVfModuleId("vfModule1");
922 vnf.getVfModules().add(vfModule);
923 org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule vfModule2 = new org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule();
924 vfModule2.setVfModuleId("vfModule2");
925 vnf.getVfModules().add(vfModule2);
927 org.onap.so.bpmn.servicedecomposition.bbobjects.VolumeGroup volumeGroup = new org.onap.so.bpmn.servicedecomposition.bbobjects.VolumeGroup();
928 volumeGroup.setVolumeGroupId("vg123");
929 vnf.getVolumeGroups().add(volumeGroup);
931 serviceInstanceMSO.getVnfs().add(vnf);
933 doReturn(serviceInstanceAAI).when(bbSetupUtils).getAAIServiceInstanceById("123");
934 doReturn(serviceInstanceMSO).when(bbInputSetup).getExistingServiceInstance(serviceInstanceAAI);
935 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScope(gAction,resource,false)).thenReturn(northBoundRequest);
936 workflowAction.selectExecutionList(execution);
937 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
938 assertEquals(ebbs.get(0).getBuildingBlock().getBpmnFlowName(),"UnassignVfModuleBB");
939 assertEquals(ebbs.get(1).getBuildingBlock().getBpmnFlowName(),"UnassignVfModuleBB");
940 assertEquals(ebbs.get(2).getBuildingBlock().getBpmnFlowName(),"UnassignVolumeGroupBB");
941 assertEquals(ebbs.get(3).getBuildingBlock().getBpmnFlowName(),"UnassignVnfBB");
942 assertEquals(ebbs.get(4).getBuildingBlock().getBpmnFlowName(),"UnassignServiceInstanceBB");
946 public void selectExecutionListServiceMacroDeleteNetworkCollectionTest() throws Exception{
947 String gAction = "deleteInstance";
948 String resource = "Service";
949 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
950 execution.setVariable("requestAction", gAction);
951 String bpmnRequest = new String(Files.readAllBytes(Paths.get("src/test/resources/__files/Macro/ServiceMacroActivateDeleteUnassign.json")));
952 execution.setVariable("bpmnRequest", bpmnRequest);
953 execution.setVariable("aLaCarte", false);
954 execution.setVariable("apiVersion", "7");
955 execution.setVariable("requestUri", "v6/serviceInstances/123");
957 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
958 List<OrchestrationFlow> orchFlows = new LinkedList<>();
959 northBoundRequest.setOrchestrationFlowList(orchFlows);
960 OrchestrationFlow orch3 = new OrchestrationFlow();
961 orch3.setFlowName("DeactivateVfModuleBB");
962 orchFlows.add(orch3);
963 OrchestrationFlow orch4 = new OrchestrationFlow();
964 orch4.setFlowName("DeleteVfModuleBB");
965 orchFlows.add(orch4);
966 OrchestrationFlow orch5 = new OrchestrationFlow();
967 orch5.setFlowName("DeactivateVolumeGroupBB");
968 orchFlows.add(orch5);
969 OrchestrationFlow orch6 = new OrchestrationFlow();
970 orch6.setFlowName("DeleteVolumeGroupBB");
971 orchFlows.add(orch6);
972 OrchestrationFlow orch7 = new OrchestrationFlow();
973 orch7.setFlowName("DeactivateVnfBB");
974 orchFlows.add(orch7);
975 OrchestrationFlow orch8 = new OrchestrationFlow();
976 orch8.setFlowName("DeactivateNetworkBB");
977 orchFlows.add(orch8);
978 OrchestrationFlow orch9 = new OrchestrationFlow();
979 orch9.setFlowName("DeleteNetworkBB");
980 orchFlows.add(orch9);
981 OrchestrationFlow orch10 = new OrchestrationFlow();
982 orch10.setFlowName("DeleteNetworkCollectionBB");
983 orchFlows.add(orch10);
984 OrchestrationFlow orch11 = new OrchestrationFlow();
985 orch11.setFlowName("DeactivateServiceInstanceBB");
986 orchFlows.add(orch11);
987 OrchestrationFlow orch12 = new OrchestrationFlow();
988 orch12.setFlowName("UnassignVfModuleBB");
989 orchFlows.add(orch12);
990 OrchestrationFlow orch13 = new OrchestrationFlow();
991 orch13.setFlowName("UnassignVolumeGroupBB");
992 orchFlows.add(orch13);
993 OrchestrationFlow orch14 = new OrchestrationFlow();
994 orch14.setFlowName("UnassignVnfBB");
995 orchFlows.add(orch14);
996 OrchestrationFlow orch15 = new OrchestrationFlow();
997 orch15.setFlowName("UnassignNetworkBB");
998 orchFlows.add(orch15);
999 OrchestrationFlow orch16 = new OrchestrationFlow();
1000 orch16.setFlowName("UnassignServiceInstanceBB");
1001 orchFlows.add(orch16);
1003 ServiceInstance serviceInstanceAAI = new ServiceInstance();
1004 serviceInstanceAAI.setServiceInstanceId("aaisi123");
1005 org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance serviceInstanceMSO = new org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance();
1007 org.onap.so.bpmn.servicedecomposition.bbobjects.L3Network network = new org.onap.so.bpmn.servicedecomposition.bbobjects.L3Network();
1008 network.setNetworkId("123");
1009 serviceInstanceMSO.getNetworks().add(network);
1010 org.onap.so.bpmn.servicedecomposition.bbobjects.L3Network network2 = new org.onap.so.bpmn.servicedecomposition.bbobjects.L3Network();
1011 network2.setNetworkId("321");
1012 serviceInstanceMSO.getNetworks().add(network2);
1014 Collection collection = new Collection();
1015 serviceInstanceMSO.setCollection(collection);
1017 doReturn(serviceInstanceAAI).when(bbSetupUtils).getAAIServiceInstanceById("123");
1018 doReturn(serviceInstanceMSO).when(bbInputSetup).getExistingServiceInstance(serviceInstanceAAI);
1019 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScope(gAction,resource,false)).thenReturn(northBoundRequest);
1020 workflowAction.selectExecutionList(execution);
1021 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
1022 assertEquals(ebbs.get(0).getBuildingBlock().getBpmnFlowName(),"DeactivateNetworkBB");
1023 assertEquals(ebbs.get(1).getBuildingBlock().getBpmnFlowName(),"DeleteNetworkBB");
1024 assertEquals(ebbs.get(2).getBuildingBlock().getBpmnFlowName(),"UnassignNetworkBB");
1025 assertEquals(ebbs.get(3).getBuildingBlock().getBpmnFlowName(),"DeactivateNetworkBB");
1026 assertEquals(ebbs.get(4).getBuildingBlock().getBpmnFlowName(),"DeleteNetworkBB");
1027 assertEquals(ebbs.get(5).getBuildingBlock().getBpmnFlowName(),"UnassignNetworkBB");
1028 assertEquals(ebbs.get(6).getBuildingBlock().getBpmnFlowName(),"DeleteNetworkCollectionBB");
1029 assertEquals(ebbs.get(7).getBuildingBlock().getBpmnFlowName(),"DeactivateServiceInstanceBB");
1030 assertEquals(ebbs.get(8).getBuildingBlock().getBpmnFlowName(),"UnassignServiceInstanceBB");
1035 public void selectExecutionListNetworkCollectionMacroCreate() throws Exception{
1036 String gAction = "createInstance";
1037 String resource = "NetworkCollection";
1038 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
1039 execution.setVariable("requestAction", gAction);
1040 String bpmnRequest = new String(Files.readAllBytes(Paths.get("src/test/resources/__files/Macro/CreateNetworkCollection.json")));
1041 execution.setVariable("bpmnRequest", bpmnRequest);
1042 execution.setVariable("aLaCarte", false);
1043 execution.setVariable("apiVersion", "7");
1044 execution.setVariable("requestUri", "v6/serviceInstances/123/networkCollections/123");
1046 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1047 List<OrchestrationFlow> orchFlows = new LinkedList<>();
1048 northBoundRequest.setOrchestrationFlowList(orchFlows);
1049 OrchestrationFlow orch1 = new OrchestrationFlow();
1050 orch1.setFlowName("CreateNetworkCollectionBB");
1051 orchFlows.add(orch1);
1052 OrchestrationFlow orch2 = new OrchestrationFlow();
1053 orch2.setFlowName("AssignNetworkBB");
1054 orchFlows.add(orch2);
1055 OrchestrationFlow orch3 = new OrchestrationFlow();
1056 orch3.setFlowName("CreateNetworkBB");
1057 orchFlows.add(orch3);
1058 OrchestrationFlow orch4 = new OrchestrationFlow();
1059 orch4.setFlowName("ActivateNetworkBB");
1060 orchFlows.add(orch4);
1061 OrchestrationFlow orch5 = new OrchestrationFlow();
1062 orch5.setFlowName("ActivateNetworkCollectionBB");
1063 orchFlows.add(orch5);
1065 Service service = new Service();
1066 CollectionResourceCustomization collectionResourceCustomization = new CollectionResourceCustomization();
1067 CollectionResource collectionResource = new CollectionResource();
1068 collectionResource.setToscaNodeType("Data NetworkCollection Data");
1069 collectionResourceCustomization.setCollectionResource(collectionResource);
1070 service.getCollectionResourceCustomizations().add(collectionResourceCustomization);
1072 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScope(gAction,resource,false)).thenReturn(northBoundRequest);
1073 when(catalogDbClient.getServiceByID("3c40d244-808e-42ca-b09a-256d83d19d0a")).thenReturn(service);
1074 workflowAction.selectExecutionList(execution);
1075 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
1076 assertEquals(ebbs.get(0).getBuildingBlock().getBpmnFlowName(),"CreateNetworkCollectionBB");
1077 assertEquals(ebbs.get(1).getBuildingBlock().getBpmnFlowName(),"AssignNetworkBB");
1078 assertEquals(ebbs.get(2).getBuildingBlock().getBpmnFlowName(),"CreateNetworkBB");
1079 assertEquals(ebbs.get(3).getBuildingBlock().getBpmnFlowName(),"ActivateNetworkBB");
1080 assertEquals(ebbs.get(4).getBuildingBlock().getBpmnFlowName(),"AssignNetworkBB");
1081 assertEquals(ebbs.get(5).getBuildingBlock().getBpmnFlowName(),"CreateNetworkBB");
1082 assertEquals(ebbs.get(6).getBuildingBlock().getBpmnFlowName(),"ActivateNetworkBB");
1083 assertEquals(ebbs.get(7).getBuildingBlock().getBpmnFlowName(),"ActivateNetworkCollectionBB");
1088 public void selectExecutionListNetworkCollectionMacroDelete() throws Exception{
1089 String gAction = "deleteInstance";
1090 String resource = "NetworkCollection";
1091 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
1092 execution.setVariable("requestAction", gAction);
1093 String bpmnRequest = new String(Files.readAllBytes(Paths.get("src/test/resources/__files/Macro/CreateNetworkCollection.json")));
1094 execution.setVariable("bpmnRequest", bpmnRequest);
1095 execution.setVariable("aLaCarte", false);
1096 execution.setVariable("apiVersion", "7");
1097 execution.setVariable("requestUri", "v6/serviceInstances/123/networkCollections/123");
1099 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1100 List<OrchestrationFlow> orchFlows = new LinkedList<>();
1101 northBoundRequest.setOrchestrationFlowList(orchFlows);
1102 OrchestrationFlow orch1 = new OrchestrationFlow();
1103 orch1.setFlowName("DeactivateNetworkBB");
1104 orchFlows.add(orch1);
1105 OrchestrationFlow orch2 = new OrchestrationFlow();
1106 orch2.setFlowName("DeleteNetworkBB");
1107 orchFlows.add(orch2);
1108 OrchestrationFlow orch3 = new OrchestrationFlow();
1109 orch3.setFlowName("UnassignNetworkBB");
1110 orchFlows.add(orch3);
1111 OrchestrationFlow orch4 = new OrchestrationFlow();
1112 orch4.setFlowName("DeactivateNetworkCollectionBB");
1113 orchFlows.add(orch4);
1114 OrchestrationFlow orch5 = new OrchestrationFlow();
1115 orch5.setFlowName("DeleteNetworkCollectionBB");
1116 orchFlows.add(orch5);
1118 Service service = new Service();
1119 CollectionResourceCustomization collectionResourceCustomization = new CollectionResourceCustomization();
1120 CollectionResource collectionResource = new CollectionResource();
1121 collectionResource.setToscaNodeType("Data NetworkCollection Data");
1122 collectionResourceCustomization.setCollectionResource(collectionResource);
1123 service.getCollectionResourceCustomizations().add(collectionResourceCustomization);
1125 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScope(gAction,resource,false)).thenReturn(northBoundRequest);
1126 when(catalogDbClient.getServiceByID("3c40d244-808e-42ca-b09a-256d83d19d0a")).thenReturn(service);
1127 workflowAction.selectExecutionList(execution);
1128 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
1129 assertEquals(ebbs.get(0).getBuildingBlock().getBpmnFlowName(),"DeactivateNetworkBB");
1130 assertEquals(ebbs.get(1).getBuildingBlock().getBpmnFlowName(),"DeleteNetworkBB");
1131 assertEquals(ebbs.get(2).getBuildingBlock().getBpmnFlowName(),"UnassignNetworkBB");
1132 assertEquals(ebbs.get(3).getBuildingBlock().getBpmnFlowName(),"DeactivateNetworkBB");
1133 assertEquals(ebbs.get(4).getBuildingBlock().getBpmnFlowName(),"DeleteNetworkBB");
1134 assertEquals(ebbs.get(5).getBuildingBlock().getBpmnFlowName(),"UnassignNetworkBB");
1135 assertEquals(ebbs.get(6).getBuildingBlock().getBpmnFlowName(),"DeactivateNetworkCollectionBB");
1136 assertEquals(ebbs.get(7).getBuildingBlock().getBpmnFlowName(),"DeleteNetworkCollectionBB");
1140 * WorkflowActionBB Tests
1144 public void pluralTest() {
1145 List<String> items = Arrays.asList(
1146 "serviceInstances, Service",
1148 "vfModules, VfModule",
1149 "networks, Network",
1150 "invalidNames, invalidNames");
1151 items.forEach(item -> {
1152 String[] split = item.split(",");
1153 String type = split[0].trim();
1154 String expected = split[1].trim();
1155 assertThat(workflowAction.convertTypeFromPlural(type), equalTo(expected));
1160 public void sortExecutionPathByObjectForVlanTaggingCreateTest() throws Exception{
1161 List<ExecuteBuildingBlock> executeFlows = new ArrayList<>();
1162 ExecuteBuildingBlock ebb = new ExecuteBuildingBlock();
1163 BuildingBlock bb = new BuildingBlock();
1164 bb.setBpmnFlowName("AssignNetworkBB");
1166 ebb.setBuildingBlock(bb);
1167 executeFlows.add(ebb);
1168 ExecuteBuildingBlock ebb2 = new ExecuteBuildingBlock();
1169 BuildingBlock bb2 = new BuildingBlock();
1170 bb2.setBpmnFlowName("AssignNetworkBB");
1172 ebb2.setBuildingBlock(bb2);
1173 executeFlows.add(ebb2);
1174 ExecuteBuildingBlock ebb3 = new ExecuteBuildingBlock();
1175 BuildingBlock bb3 = new BuildingBlock();
1176 bb3.setBpmnFlowName("CreateNetworkBB");
1178 ebb3.setBuildingBlock(bb3);
1179 executeFlows.add(ebb3);
1180 ExecuteBuildingBlock ebb4 = new ExecuteBuildingBlock();
1181 BuildingBlock bb4 = new BuildingBlock();
1182 bb4.setBpmnFlowName("CreateNetworkBB");
1184 ebb4.setBuildingBlock(bb4);
1185 executeFlows.add(ebb4);
1186 ExecuteBuildingBlock ebb5 = new ExecuteBuildingBlock();
1187 BuildingBlock bb5 = new BuildingBlock();
1188 bb5.setBpmnFlowName("ActivateNetworkBB");
1190 ebb5.setBuildingBlock(bb5);
1191 executeFlows.add(ebb5);
1192 ExecuteBuildingBlock ebb6 = new ExecuteBuildingBlock();
1193 BuildingBlock bb6 = new BuildingBlock();
1194 bb6.setBpmnFlowName("ActivateNetworkBB");
1196 ebb6.setBuildingBlock(bb6);
1197 executeFlows.add(ebb6);
1199 List<ExecuteBuildingBlock> sorted = workflowAction.sortExecutionPathByObjectForVlanTagging(executeFlows,"createInstance");
1200 assertEquals(sorted.get(0).getBuildingBlock().getBpmnFlowName(),"AssignNetworkBB");
1201 assertEquals(sorted.get(1).getBuildingBlock().getBpmnFlowName(),"CreateNetworkBB");
1202 assertEquals(sorted.get(2).getBuildingBlock().getBpmnFlowName(),"ActivateNetworkBB");
1203 assertEquals(sorted.get(3).getBuildingBlock().getBpmnFlowName(),"AssignNetworkBB");
1204 assertEquals(sorted.get(4).getBuildingBlock().getBpmnFlowName(),"CreateNetworkBB");
1205 assertEquals(sorted.get(5).getBuildingBlock().getBpmnFlowName(),"ActivateNetworkBB");
1209 public void sortExecutionPathByObjectForVlanTaggingDeleteTest() throws Exception{
1210 List<ExecuteBuildingBlock> executeFlows = new ArrayList<>();
1211 ExecuteBuildingBlock ebb = new ExecuteBuildingBlock();
1212 BuildingBlock bb = new BuildingBlock();
1213 bb.setBpmnFlowName("DeactivateNetworkBB");
1215 ebb.setBuildingBlock(bb);
1216 executeFlows.add(ebb);
1217 ExecuteBuildingBlock ebb2 = new ExecuteBuildingBlock();
1218 BuildingBlock bb2 = new BuildingBlock();
1219 bb2.setBpmnFlowName("DeactivateNetworkBB");
1221 ebb2.setBuildingBlock(bb2);
1222 executeFlows.add(ebb2);
1223 ExecuteBuildingBlock ebb3 = new ExecuteBuildingBlock();
1224 BuildingBlock bb3 = new BuildingBlock();
1225 bb3.setBpmnFlowName("DeleteNetworkBB");
1227 ebb3.setBuildingBlock(bb3);
1228 executeFlows.add(ebb3);
1229 ExecuteBuildingBlock ebb4 = new ExecuteBuildingBlock();
1230 BuildingBlock bb4 = new BuildingBlock();
1231 bb4.setBpmnFlowName("DeleteNetworkBB");
1233 ebb4.setBuildingBlock(bb4);
1234 executeFlows.add(ebb4);
1235 ExecuteBuildingBlock ebb5 = new ExecuteBuildingBlock();
1236 BuildingBlock bb5 = new BuildingBlock();
1237 bb5.setBpmnFlowName("UnassignNetworkBB");
1239 ebb5.setBuildingBlock(bb5);
1240 executeFlows.add(ebb5);
1241 ExecuteBuildingBlock ebb6 = new ExecuteBuildingBlock();
1242 BuildingBlock bb6 = new BuildingBlock();
1243 bb6.setBpmnFlowName("UnassignNetworkBB");
1245 ebb6.setBuildingBlock(bb6);
1246 executeFlows.add(ebb6);
1248 List<ExecuteBuildingBlock> sorted = workflowAction.sortExecutionPathByObjectForVlanTagging(executeFlows,"deleteInstance");
1249 assertEquals(sorted.get(0).getBuildingBlock().getBpmnFlowName(),"DeactivateNetworkBB");
1250 assertEquals(sorted.get(1).getBuildingBlock().getBpmnFlowName(),"DeleteNetworkBB");
1251 assertEquals(sorted.get(2).getBuildingBlock().getBpmnFlowName(),"UnassignNetworkBB");
1252 assertEquals(sorted.get(3).getBuildingBlock().getBpmnFlowName(),"DeactivateNetworkBB");
1253 assertEquals(sorted.get(4).getBuildingBlock().getBpmnFlowName(),"DeleteNetworkBB");
1254 assertEquals(sorted.get(5).getBuildingBlock().getBpmnFlowName(),"UnassignNetworkBB");
1257 public void queryNorthBoundRequestCatalogDbNestedTest() throws MalformedURLException {
1258 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
1259 List<OrchestrationFlow> orchFlows = new LinkedList<>();
1260 OrchestrationFlow orch1 = new OrchestrationFlow();
1261 orch1.setFlowName("AAICheckVnfInMaintBB");
1262 orchFlows.add(orch1);
1263 OrchestrationFlow orch2 = new OrchestrationFlow();
1264 orch2.setFlowName("AAISetVnfInMaintBB");
1265 orchFlows.add(orch2);
1266 OrchestrationFlow orch3 = new OrchestrationFlow();
1267 orch3.setFlowName("VNF-Macro-Replace");
1268 orchFlows.add(orch3);
1269 OrchestrationFlow orch4 = new OrchestrationFlow();
1270 orch4.setFlowName("SDNOVnfHealthCheckBB");
1271 orchFlows.add(orch4);
1272 OrchestrationFlow orch5 = new OrchestrationFlow();
1273 orch5.setFlowName("AAIUnsetVnfInMaintBB");
1274 orchFlows.add(orch5);
1275 northBoundRequest.setOrchestrationFlowList(orchFlows);
1277 List<OrchestrationFlow> macroFlows = new LinkedList<>();
1278 OrchestrationFlow o1 = new OrchestrationFlow();
1279 o1.setFlowName("DeactivateVfModuleBB");
1281 OrchestrationFlow o2 = new OrchestrationFlow();
1282 o2.setFlowName("DeleteVfModuleBB");
1284 OrchestrationFlow o3 = new OrchestrationFlow();
1285 o3.setFlowName("DeactivateVnfBB");
1287 OrchestrationFlow o4 = new OrchestrationFlow();
1288 o4.setFlowName("CreateVfModuleBB");
1290 OrchestrationFlow o5 = new OrchestrationFlow();
1291 o5.setFlowName("ActivateVfModuleBB");
1293 OrchestrationFlow o6 = new OrchestrationFlow();
1294 o6.setFlowName("ActivateVnfBB");
1297 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScope("replaceInstance","Vnf",false)).thenReturn(northBoundRequest);
1298 when(catalogDbClient.getOrchestrationFlowByAction("VNF-Macro-Replace")).thenReturn(macroFlows);
1299 List<OrchestrationFlow> flows = workflowAction.queryNorthBoundRequestCatalogDb(execution, "replaceInstance", WorkflowType.VNF, false);
1300 assertEquals(flows.get(0).getFlowName(),"AAICheckVnfInMaintBB");
1301 assertEquals(flows.get(1).getFlowName(),"AAISetVnfInMaintBB");
1302 assertEquals(flows.get(2).getFlowName(),"DeactivateVfModuleBB");
1303 assertEquals(flows.get(3).getFlowName(),"DeleteVfModuleBB");
1304 assertEquals(flows.get(4).getFlowName(),"DeactivateVnfBB");
1305 assertEquals(flows.get(5).getFlowName(),"CreateVfModuleBB");
1306 assertEquals(flows.get(6).getFlowName(),"ActivateVfModuleBB");
1307 assertEquals(flows.get(7).getFlowName(),"ActivateVnfBB");
1308 assertEquals(flows.get(8).getFlowName(),"SDNOVnfHealthCheckBB");
1309 assertEquals(flows.get(9).getFlowName(),"AAIUnsetVnfInMaintBB");
1313 public void extractResourceIdAndTypeFromUriTest(){
1314 String uri = "/v6/serviceInstances/123";
1315 String uri2 = "/v6/serviceInstances/123/vnfs/1234";
1316 String uri3 = "/v6/serviceInstances";
1317 String uri4 = "/v6/serviceInstances/assign";
1318 String uri5 = "'/v6/serviceInstances/123/vnfs";
1319 String uri6 = "/v6/serviceInstances/123/vnfs/1234/someAction";
1320 String uri7 = "/v6/serviceInstances/123/vnfs/1234/vfModules/5678/replace";
1322 Resource expected1 = new Resource(WorkflowType.SERVICE, "123", true);
1323 Resource expected2 = new Resource(WorkflowType.VNF, "1234", false);
1324 Resource expected3 = new Resource(WorkflowType.VNF, "1234", false);
1325 Resource expected4 = new Resource(WorkflowType.VFMODULE, "5678", false);
1326 Resource result = workflowAction.extractResourceIdAndTypeFromUri(uri);
1327 assertEquals(expected1.getResourceId(),result.getResourceId());
1328 assertEquals(expected1.getResourceType(),result.getResourceType());
1329 result = workflowAction.extractResourceIdAndTypeFromUri(uri2);
1330 assertEquals(expected2.getResourceId(),result.getResourceId());
1331 assertEquals(expected2.getResourceType(),result.getResourceType());
1332 result = workflowAction.extractResourceIdAndTypeFromUri(uri3);
1333 assertEquals("Service", result.getResourceType().toString());
1334 assertEquals(UUID.randomUUID().toString().length(),result.getResourceId().length());
1335 result = workflowAction.extractResourceIdAndTypeFromUri(uri4);
1336 assertEquals("Service", result.getResourceType().toString());
1337 assertEquals(UUID.randomUUID().toString().length(),result.getResourceId().length());
1338 result = workflowAction.extractResourceIdAndTypeFromUri(uri5);
1339 assertEquals("Vnf", result.getResourceType().toString());
1340 assertEquals(UUID.randomUUID().toString().length(),result.getResourceId().length());
1341 result = workflowAction.extractResourceIdAndTypeFromUri(uri6);
1342 assertEquals(expected3.getResourceId(),result.getResourceId());
1343 assertEquals(expected3.getResourceType(),result.getResourceType());
1344 result = workflowAction.extractResourceIdAndTypeFromUri(uri7);
1345 assertEquals(expected4.getResourceId(),result.getResourceId());
1346 assertEquals(expected4.getResourceType(),result.getResourceType());
1350 public void extractResourceIdAndTypeFromUriInvalidTypeTest() {
1351 this.expectedException.expect(IllegalArgumentException.class);
1352 this.expectedException.expectMessage(containsString("Uri could not be parsed. No type found."));
1353 workflowAction.extractResourceIdAndTypeFromUri("/v6/serviceInstances/123/vnfs/1234/vfmodules/5678/replace");
1357 public void extractResourceIdAndTypeFromUriInvalidUriTest() {
1358 this.expectedException.expect(IllegalArgumentException.class);
1359 this.expectedException.expectMessage(containsString("Uri could not be parsed:"));
1360 workflowAction.extractResourceIdAndTypeFromUri("something that doesn't match anything");
1364 public void populateResourceIdsFromApiHandlerTest(){
1365 execution.setVariable("serviceInstanceId", "123");
1366 execution.setVariable("vnfId", "888");
1367 WorkflowResourceIds x = workflowAction.populateResourceIdsFromApiHandler(execution);
1368 assertEquals("123",x.getServiceInstanceId());
1369 assertEquals("888",x.getVnfId());
1370 assertNull(x.getVolumeGroupId());
1374 public void validateResourceIdInAAITest() throws Exception{
1376 RequestDetails reqDetails = new RequestDetails();
1377 SubscriberInfo subInfo = new SubscriberInfo();
1378 subInfo.setGlobalSubscriberId("id123");
1379 reqDetails.setSubscriberInfo(subInfo);
1380 RequestParameters reqParams = new RequestParameters();
1381 reqParams.setSubscriptionServiceType("subServiceType123");
1382 reqDetails.setRequestParameters(reqParams );
1383 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
1384 ServiceInstance si = new ServiceInstance();
1385 si.setServiceInstanceId("siId123");
1386 Optional<ServiceInstance> siOp = Optional.of(si);
1387 when(bbSetupUtils.getAAIServiceInstanceByName("id123", "subServiceType123", "siName123")).thenReturn(siOp);
1388 when(bbSetupUtils.getAAIServiceInstanceByName("id123", "subServiceType123", "111111")).thenReturn(Optional.empty());
1389 String id = workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.SERVICE, "siName123", reqDetails, workflowResourceIds);
1390 assertEquals("siId123",id);
1391 String id2 = workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.SERVICE, "111111", reqDetails, workflowResourceIds);
1392 assertEquals("generatedId123",id2);
1395 L3Network network = new L3Network();
1396 network.setNetworkId("id123");
1397 network.setNetworkName("name123");
1398 workflowResourceIds.setServiceInstanceId("siId123");
1399 Optional<L3Network> opNetwork = Optional.of(network);
1400 when(bbSetupUtils.getRelatedNetworkByNameFromServiceInstance("siId123","name123")).thenReturn(opNetwork);
1401 when(bbSetupUtils.getRelatedNetworkByNameFromServiceInstance("siId123","111111")).thenReturn(Optional.empty());
1402 id = workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.NETWORK, "name123", reqDetails, workflowResourceIds);
1403 assertEquals("id123",id);
1404 id2 = workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.NETWORK, "111111", reqDetails, workflowResourceIds);
1405 assertEquals("generatedId123",id2);
1408 GenericVnf vnf = new GenericVnf();
1409 vnf.setVnfId("id123");
1410 vnf.setVnfName("vnfName123");
1411 Optional<GenericVnf> opVnf = Optional.of(vnf);
1412 when(bbSetupUtils.getRelatedVnfByNameFromServiceInstance("siId123","name123")).thenReturn(opVnf);
1413 when(bbSetupUtils.getRelatedVnfByNameFromServiceInstance("siId123","111111")).thenReturn(Optional.empty());
1414 id = workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.VNF, "name123", reqDetails, workflowResourceIds);
1415 assertEquals("id123",id);
1416 id2 = workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.VNF, "111111", reqDetails, workflowResourceIds);
1417 assertEquals("generatedId123",id2);
1420 VfModules vfModules = new VfModules();
1421 VfModule vfModule = new VfModule();
1422 vfModule.setVfModuleId("id123");
1423 vfModule.setVfModuleName("name123");
1424 vfModules.getVfModule().add(vfModule);
1425 vnf.setVfModules(vfModules);
1426 workflowResourceIds.setVnfId("id123");
1427 when(bbSetupUtils.getAAIGenericVnf("id123")).thenReturn(vnf);
1428 id = workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.VFMODULE, "name123", reqDetails, workflowResourceIds);
1429 assertEquals("id123",id);
1431 GenericVnf vnf2 = new GenericVnf();
1432 VfModules vfModules2 = new VfModules();
1433 VfModule vfModule2 = new VfModule();
1434 vfModule2.setVfModuleId("id123");
1435 vfModule2.setVfModuleName("name123");
1436 vfModules2.getVfModule().add(vfModule2);
1437 vnf2.setVfModules(vfModules2);
1438 workflowResourceIds.setVnfId("id111");
1439 when(bbSetupUtils.getAAIGenericVnf("id111")).thenReturn(vnf2);
1440 id2 = workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.VFMODULE, "111111", reqDetails, workflowResourceIds);
1441 assertEquals("generatedId123",id2);
1444 VolumeGroup volumeGroup = new VolumeGroup();
1445 volumeGroup.setVolumeGroupId("id123");
1446 volumeGroup.setVolumeGroupName("name123");
1447 workflowResourceIds.setVnfId("id123");
1448 Optional<VolumeGroup> opVolumeGroup = Optional.of(volumeGroup);
1449 when(bbSetupUtils.getRelatedVolumeGroupByNameFromVnf("id123","name123")).thenReturn(opVolumeGroup);
1450 id = workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.VOLUMEGROUP, "name123", reqDetails, workflowResourceIds);
1451 assertEquals("id123",id);
1453 workflowResourceIds.setVnfId("id444");
1454 when(bbSetupUtils.getAAIGenericVnf("id444")).thenReturn(vnf);
1455 when(bbSetupUtils.getRelatedVolumeGroupByNameFromVfModule("id123", "id123","111111")).thenReturn(opVolumeGroup);
1456 when(bbSetupUtils.getRelatedVolumeGroupByNameFromVnf("id444","111111")).thenReturn(Optional.empty());
1457 id2 = workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.VOLUMEGROUP, "111111", reqDetails, workflowResourceIds);
1458 assertEquals("id123",id2);
1462 public void handleRuntimeExceptionTest(){
1463 execution.setVariable("BPMN_javaExpMsg", "test runtime error message");
1464 execution.setVariable("testProcessKey", "testProcessKeyValue");
1466 workflowAction.handleRuntimeException(execution);
1467 } catch (BpmnError wfe) {
1468 assertEquals("MSOWorkflowException",wfe.getErrorCode());
1473 public void traverseCatalogDbServiceMultipleNetworkTest() throws IOException{
1474 execution.setVariable("testProcessKey", "testProcessKeyValue");
1475 Service service = new Service();
1476 List<NetworkResourceCustomization> networkCustomizations = new ArrayList<>();
1477 NetworkResourceCustomization networkCust = new NetworkResourceCustomization();
1478 networkCust.setModelCustomizationUUID("123");
1479 networkCustomizations.add(networkCust);
1480 service.setNetworkCustomizations(networkCustomizations);
1481 NetworkCollectionResourceCustomization collectionResourceCustomization = new NetworkCollectionResourceCustomization();
1482 collectionResourceCustomization.setModelCustomizationUUID("123");
1483 CollectionResource collectionResource = new CollectionResource();
1484 collectionResource.setToscaNodeType("NetworkCollection");
1485 InstanceGroup instanceGroup = new InstanceGroup();
1486 List<CollectionResourceInstanceGroupCustomization> collectionInstanceGroupCustomizations = new ArrayList<>();
1487 CollectionResourceInstanceGroupCustomization collectionInstanceGroupCustomization = new CollectionResourceInstanceGroupCustomization();
1488 collectionInstanceGroupCustomization.setSubInterfaceNetworkQuantity(3);
1489 collectionInstanceGroupCustomizations.add(collectionInstanceGroupCustomization);
1490 instanceGroup.setCollectionInstanceGroupCustomizations(collectionInstanceGroupCustomizations);
1491 collectionResource.setInstanceGroup(instanceGroup);
1492 collectionResourceCustomization.setCollectionResource(collectionResource);;
1493 service.setModelUUID("abc");
1494 service.getCollectionResourceCustomizations().add(collectionResourceCustomization);
1495 service.getCollectionResourceCustomizations().add(collectionResourceCustomization);
1496 doReturn(service).when(catalogDbClient).getServiceByID("3c40d244-808e-42ca-b09a-256d83d19d0a");
1497 doReturn(collectionResourceCustomization).when(catalogDbClient).getNetworkCollectionResourceCustomizationByID("123");
1498 String bpmnRequest = new String(Files.readAllBytes(Paths.get("src/test/resources/__files/Macro/ServiceMacroActivateDeleteUnassign.json")));
1499 ObjectMapper mapper = new ObjectMapper();
1500 ServiceInstancesRequest sIRequest = mapper.readValue(bpmnRequest, ServiceInstancesRequest.class);
1501 List<Resource> resourceCounter = new ArrayList<>();
1502 thrown.expect(BpmnError.class);
1503 workflowAction.traverseCatalogDbService(execution, sIRequest, resourceCounter);
1507 public void sortVfModulesByBaseFirstTest(){
1508 List<Resource> resources = new ArrayList<>();
1509 Resource resource1 = new Resource(WorkflowType.VFMODULE,"111",false);
1510 resource1.setBaseVfModule(false);
1511 resources.add(resource1);
1512 Resource resource2 = new Resource(WorkflowType.VFMODULE,"222",false);
1513 resource2.setBaseVfModule(false);
1514 resources.add(resource2);
1515 Resource resource3 = new Resource(WorkflowType.VFMODULE,"333",false);
1516 resource3.setBaseVfModule(true);
1517 resources.add(resource3);
1518 List<Resource> result = workflowAction.sortVfModulesByBaseFirst(resources);
1519 assertEquals("333",result.get(0).getResourceId());
1520 assertEquals("222",result.get(1).getResourceId());
1521 assertEquals("111",result.get(2).getResourceId());