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