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.ArgumentMatchers.anyObject;
29 import static org.mockito.ArgumentMatchers.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.List;
40 import java.util.Optional;
41 import java.util.UUID;
43 import org.camunda.bpm.engine.delegate.BpmnError;
44 import org.camunda.bpm.engine.delegate.DelegateExecution;
45 import org.camunda.bpm.extension.mockito.delegate.DelegateExecutionFake;
46 import org.junit.Before;
47 import org.junit.Ignore;
48 import org.junit.Rule;
49 import org.junit.Test;
50 import org.junit.rules.ExpectedException;
51 import org.mockito.InjectMocks;
52 import org.mockito.Mock;
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.RequestDetails;
78 import org.onap.so.serviceinstancebeans.RequestParameters;
79 import org.onap.so.serviceinstancebeans.ServiceInstancesRequest;
80 import org.onap.so.serviceinstancebeans.SubscriberInfo;
81 import org.springframework.core.env.Environment;
83 import com.fasterxml.jackson.databind.ObjectMapper;
85 public class WorkflowActionTest extends BaseTaskTest {
88 protected Environment environment;
90 protected WorkflowAction workflowAction;
91 private DelegateExecution execution;
94 public ExpectedException thrown = ExpectedException.none();
97 public void before() throws Exception {
98 execution = new DelegateExecutionFake();
99 org.onap.aai.domain.yang.ServiceInstance servInstance = new org.onap.aai.domain.yang.ServiceInstance();
100 servInstance.setServiceInstanceId("TEST");
101 when(bbSetupUtils.getAAIServiceInstanceByName(anyString(), anyObject())).thenReturn(servInstance);
102 workflowAction.setBbInputSetupUtils(bbSetupUtils);
103 workflowAction.setBbInputSetup(bbInputSetup);
109 public void selectExecutionListALaCarteNetworkCreateTest() throws Exception{
110 String gAction = "createInstance";
111 String resource = "Network";
112 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
113 execution.setVariable("requestAction", gAction);
114 String bpmnRequest = new String(Files.readAllBytes(Paths.get("src/test/resources/__files/Macro/ServiceMacroAssign.json")));
115 execution.setVariable("bpmnRequest", bpmnRequest);
116 execution.setVariable("aLaCarte", true);
117 execution.setVariable("apiVersion", "7");
118 execution.setVariable("requestUri", "v6/networks/123");
120 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
121 List<OrchestrationFlow> orchFlows = createFlowList("AssignNetwork1802BB","CreateNetworkBB","ActivateNetworkBB");
122 northBoundRequest.setOrchestrationFlowList(orchFlows);
124 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction,resource,true, "my-custom-cloud-owner")).thenReturn(northBoundRequest);
125 workflowAction.selectExecutionList(execution);
126 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
127 assertEqualsBulkFlowName(ebbs,"AssignNetwork1802BB","CreateNetworkBB","ActivateNetworkBB");
131 public void selectExecutionListALaCarteNetworkDeleteTest() throws Exception{
132 String gAction = "deleteInstance";
133 String resource = "Network";
134 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
135 execution.setVariable("requestAction", gAction);
136 String bpmnRequest = new String(Files.readAllBytes(Paths.get("src/test/resources/__files/Macro/ServiceMacroAssign.json")));
137 execution.setVariable("bpmnRequest", bpmnRequest);
138 execution.setVariable("aLaCarte", true);
139 execution.setVariable("apiVersion", "7");
140 execution.setVariable("requestUri", "v6/networks/123");
142 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
143 List<OrchestrationFlow> orchFlows = createFlowList("DeactivateNetworkBB","DeleteNetworkBB","UnassignNetwork1802BB");
144 northBoundRequest.setOrchestrationFlowList(orchFlows);
146 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction,resource,true,"my-custom-cloud-owner")).thenReturn(northBoundRequest);
147 workflowAction.selectExecutionList(execution);
148 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
149 assertEqualsBulkFlowName(ebbs,"DeactivateNetworkBB","DeleteNetworkBB","UnassignNetwork1802BB");
153 public void selectExecutionListALaCarteServiceCreateTest() throws Exception{
154 String gAction = "createInstance";
155 String resource = "Service";
156 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
157 execution.setVariable("requestAction", gAction);
158 String bpmnRequest = new String(Files.readAllBytes(Paths.get("src/test/resources/__files/Macro/ServiceMacroAssign.json")));
159 execution.setVariable("bpmnRequest", bpmnRequest);
160 execution.setVariable("aLaCarte", true);
161 execution.setVariable("apiVersion", "7");
162 execution.setVariable("requestUri", "v6/serviceInstances/123");
165 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
166 List<OrchestrationFlow> orchFlows = createFlowList("AssignServiceInstanceBB","ActivateServiceInstanceBB");
167 northBoundRequest.setOrchestrationFlowList(orchFlows);
169 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction,resource,true,"my-custom-cloud-owner")).thenReturn(northBoundRequest);
170 workflowAction.selectExecutionList(execution);
171 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
172 assertEqualsBulkFlowName(ebbs,"AssignServiceInstanceBB","ActivateServiceInstanceBB");
176 * SERVICE MACRO TESTS
179 public void selectExecutionListServiceMacroAssignTest() throws Exception{
180 String gAction = "assignInstance";
181 String resource = "Service";
182 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
183 execution.setVariable("requestAction", gAction);
184 String bpmnRequest = new String(Files.readAllBytes(Paths.get("src/test/resources/__files/Macro/ServiceMacroAssign.json")));
185 execution.setVariable("bpmnRequest", bpmnRequest);
186 execution.setVariable("aLaCarte", false);
187 execution.setVariable("apiVersion", "7");
188 execution.setVariable("requestUri", "v6/serviceInstances/123");
191 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
192 List<OrchestrationFlow> orchFlows = createFlowList("AssignServiceInstanceBB","AssignNetworkBB","AssignVnfBB","AssignVolumeGroupBB","AssignVfModuleBB");
193 northBoundRequest.setOrchestrationFlowList(orchFlows);
195 VfModuleCustomization vfModuleCustomization = new VfModuleCustomization();
196 vfModuleCustomization.setModelCustomizationUUID("a25e8e8c-58b8-4eec-810c-97dcc1f5cb7f");
197 HeatEnvironment volumeHeatEnv = new HeatEnvironment();
198 vfModuleCustomization.setVolumeHeatEnv(volumeHeatEnv);
199 org.onap.so.db.catalog.beans.VfModule vfModule = new org.onap.so.db.catalog.beans.VfModule();
200 HeatTemplate volumeHeatTemplate = new HeatTemplate();
201 vfModule.setVolumeHeatTemplate(volumeHeatTemplate);
202 vfModuleCustomization.setVfModule(vfModule);
204 VfModuleCustomization vfModuleCustomization2 = new VfModuleCustomization();
205 vfModuleCustomization2.setModelCustomizationUUID("72d9d1cd-f46d-447a-abdb-451d6fb05fa8");
206 HeatEnvironment heatEnvironment = new HeatEnvironment();
207 vfModuleCustomization2.setHeatEnvironment(heatEnvironment);
208 org.onap.so.db.catalog.beans.VfModule vfModule2 = new org.onap.so.db.catalog.beans.VfModule();
209 HeatTemplate moduleHeatTemplate = new HeatTemplate();
210 vfModule2.setModuleHeatTemplate(moduleHeatTemplate);
211 vfModuleCustomization2.setVfModule(vfModule2);
213 VfModuleCustomization vfModuleCustomization3 = vfModuleCustomization2;
214 vfModuleCustomization3.setModelCustomizationUUID("72d9d1cd-f46d-447a-abdb-451d6fb05fa8");
216 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction,resource,false,"my-custom-cloud-owner")).thenReturn(northBoundRequest);
217 when(catalogDbClient.getVfModuleCustomizationByModelCuztomizationUUID("a25e8e8c-58b8-4eec-810c-97dcc1f5cb7f")).thenReturn(vfModuleCustomization);
218 when(catalogDbClient.getVfModuleCustomizationByModelCuztomizationUUID("72d9d1cd-f46d-447a-abdb-451d6fb05fa8")).thenReturn(vfModuleCustomization2);
219 when(catalogDbClient.getVfModuleCustomizationByModelCuztomizationUUID("da4d4327-fb7d-4311-ac7a-be7ba60cf969")).thenReturn(vfModuleCustomization3);
220 workflowAction.selectExecutionList(execution);
221 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
222 assertEqualsBulkFlowName(ebbs,"AssignServiceInstanceBB","AssignVnfBB","AssignVolumeGroupBB","AssignVfModuleBB","AssignVfModuleBB","AssignVfModuleBB");
226 public void selectExecutionListServiceMacroAssignNoCloudTest() throws Exception{
227 String gAction = "assignInstance";
228 String resource = "Service";
229 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
230 execution.setVariable("requestAction", gAction);
231 String bpmnRequest = new String(Files.readAllBytes(Paths.get("src/test/resources/__files/Macro/ServiceMacroAssignNoCloud.json")));
232 execution.setVariable("bpmnRequest", bpmnRequest);
233 execution.setVariable("aLaCarte", false);
234 execution.setVariable("apiVersion", "7");
235 execution.setVariable("requestUri", "v6/serviceInstances/123");
238 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
239 List<OrchestrationFlow> orchFlows = createFlowList("AssignServiceInstanceBB","AssignNetworkBB","AssignVnfBB","AssignVolumeGroupBB","AssignVfModuleBB");
240 northBoundRequest.setOrchestrationFlowList(orchFlows);
242 VfModuleCustomization vfModuleCustomization = new VfModuleCustomization();
243 vfModuleCustomization.setModelCustomizationUUID("a25e8e8c-58b8-4eec-810c-97dcc1f5cb7f");
244 HeatEnvironment volumeHeatEnv = new HeatEnvironment();
245 vfModuleCustomization.setVolumeHeatEnv(volumeHeatEnv);
246 org.onap.so.db.catalog.beans.VfModule vfModule = new org.onap.so.db.catalog.beans.VfModule();
247 HeatTemplate volumeHeatTemplate = new HeatTemplate();
248 vfModule.setVolumeHeatTemplate(volumeHeatTemplate);
249 vfModuleCustomization.setVfModule(vfModule);
251 VfModuleCustomization vfModuleCustomization2 = new VfModuleCustomization();
252 vfModuleCustomization2.setModelCustomizationUUID("72d9d1cd-f46d-447a-abdb-451d6fb05fa8");
253 HeatEnvironment heatEnvironment = new HeatEnvironment();
254 vfModuleCustomization2.setHeatEnvironment(heatEnvironment);
255 org.onap.so.db.catalog.beans.VfModule vfModule2 = new org.onap.so.db.catalog.beans.VfModule();
256 HeatTemplate moduleHeatTemplate = new HeatTemplate();
257 vfModule2.setModuleHeatTemplate(moduleHeatTemplate);
258 vfModuleCustomization2.setVfModule(vfModule2);
260 VfModuleCustomization vfModuleCustomization3 = vfModuleCustomization2;
261 vfModuleCustomization3.setModelCustomizationUUID("72d9d1cd-f46d-447a-abdb-451d6fb05fa8");
263 when(environment.getProperty("org.onap.so.cloud-owner")).thenReturn("att-aic");
264 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction,resource,false,"att-aic")).thenReturn(northBoundRequest);
265 when(catalogDbClient.getVfModuleCustomizationByModelCuztomizationUUID("a25e8e8c-58b8-4eec-810c-97dcc1f5cb7f")).thenReturn(vfModuleCustomization);
266 when(catalogDbClient.getVfModuleCustomizationByModelCuztomizationUUID("72d9d1cd-f46d-447a-abdb-451d6fb05fa8")).thenReturn(vfModuleCustomization2);
267 when(catalogDbClient.getVfModuleCustomizationByModelCuztomizationUUID("da4d4327-fb7d-4311-ac7a-be7ba60cf969")).thenReturn(vfModuleCustomization3);
268 workflowAction.selectExecutionList(execution);
269 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
270 assertEqualsBulkFlowName(ebbs,"AssignServiceInstanceBB","AssignVnfBB","AssignVolumeGroupBB","AssignVfModuleBB","AssignVfModuleBB","AssignVfModuleBB");
274 public void selectExecutionListServiceMacroActivateTest() throws Exception{
275 String gAction = "activateInstance";
276 String resource = "Service";
277 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
278 execution.setVariable("requestAction", gAction);
279 String bpmnRequest = new String(Files.readAllBytes(Paths.get("src/test/resources/__files/Macro/ServiceMacroActivateDeleteUnassign.json")));
280 execution.setVariable("bpmnRequest", bpmnRequest);
281 execution.setVariable("aLaCarte", false);
282 execution.setVariable("apiVersion", "7");
283 execution.setVariable("requestUri", "v6/serviceInstances/si0");
286 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
287 List<OrchestrationFlow> orchFlows = createFlowList("CreateNetworkBB","ActivateNetworkBB","CreateVolumeGroupBB","ActivateVolumeGroupBB","CreateVfModuleBB","ActivateVfModuleBB"
288 ,"ActivateVnfBB","ActivateServiceInstanceBB");
289 northBoundRequest.setOrchestrationFlowList(orchFlows);
291 ServiceInstance serviceInstanceAAI = new ServiceInstance();
292 serviceInstanceAAI.setServiceInstanceId("si0");
293 org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance serviceInstanceMSO = new org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance();
294 org.onap.so.bpmn.servicedecomposition.bbobjects.GenericVnf vnf = new org.onap.so.bpmn.servicedecomposition.bbobjects.GenericVnf();
295 vnf.setVnfId("vnf0");
297 org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule vfModule = new org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule();
298 vfModule.setVfModuleId("vfModule0");
299 vnf.getVfModules().add(vfModule);
300 org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule vfModule2 = new org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule();
301 vfModule2.setVfModuleId("vfModule1");
302 vnf.getVfModules().add(vfModule2);
304 org.onap.so.bpmn.servicedecomposition.bbobjects.VolumeGroup volumeGroup = new org.onap.so.bpmn.servicedecomposition.bbobjects.VolumeGroup();
305 volumeGroup.setVolumeGroupId("volumeGroup0");
306 vnf.getVolumeGroups().add(volumeGroup);
308 serviceInstanceMSO.getVnfs().add(vnf);
310 doReturn(serviceInstanceAAI).when(bbSetupUtils).getAAIServiceInstanceById("si0");
311 doReturn(serviceInstanceMSO).when(bbInputSetup).getExistingServiceInstance(serviceInstanceAAI);
312 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction,resource,false,"my-custom-cloud-owner")).thenReturn(northBoundRequest);
313 workflowAction.selectExecutionList(execution);
314 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
315 assertEqualsBulkFlowName(ebbs,"CreateVolumeGroupBB","ActivateVolumeGroupBB","CreateVfModuleBB","CreateVfModuleBB","ActivateVfModuleBB","ActivateVfModuleBB","ActivateVnfBB","ActivateServiceInstanceBB");
316 assertEquals("volumeGroup0", ebbs.get(0).getWorkflowResourceIds().getVolumeGroupId());
317 assertEquals("volumeGroup0", ebbs.get(1).getWorkflowResourceIds().getVolumeGroupId());
318 assertEquals("vfModule0", ebbs.get(2).getWorkflowResourceIds().getVfModuleId());
319 assertEquals("vfModule1", ebbs.get(3).getWorkflowResourceIds().getVfModuleId());
320 assertEquals("vfModule0", ebbs.get(4).getWorkflowResourceIds().getVfModuleId());
321 assertEquals("vfModule1", ebbs.get(5).getWorkflowResourceIds().getVfModuleId());
322 assertEquals("vnf0", ebbs.get(6).getWorkflowResourceIds().getVnfId());
323 assertEquals("si0", ebbs.get(7).getWorkflowResourceIds().getServiceInstanceId());
328 public void selectExecutionListServiceMacroDeactivateTest() throws Exception{
329 String gAction = "deactivateInstance";
330 String resource = "Service";
331 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
332 execution.setVariable("requestAction", gAction);
333 String bpmnRequest = new String(Files.readAllBytes(Paths.get("src/test/resources/__files/Macro/ServiceMacroActivateDeleteUnassign.json")));
334 execution.setVariable("bpmnRequest", bpmnRequest);
335 execution.setVariable("aLaCarte", false);
336 execution.setVariable("apiVersion", "7");
337 execution.setVariable("requestUri", "v6/serviceInstances/123");
340 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
341 List<OrchestrationFlow> orchFlows = createFlowList("DeactivateServiceInstanceBB");
342 northBoundRequest.setOrchestrationFlowList(orchFlows);
344 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction,resource,false,"my-custom-cloud-owner")).thenReturn(northBoundRequest);
345 workflowAction.selectExecutionList(execution);
346 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
347 assertEquals(ebbs.get(0).getBuildingBlock().getBpmnFlowName(),"DeactivateServiceInstanceBB");
351 public void selectExecutionListServiceMacroEmptyServiceTest() throws Exception{
352 String gAction = "createInstance";
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");
363 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
364 northBoundRequest.setIsToplevelflow(true);
365 List<OrchestrationFlow> orchFlows = createFlowList("AssignServiceInstanceBB","CreateNetworkCollectionBB","AssignNetworkBB","AssignVnfBB","AssignVolumeGroupBB","AssignVfModuleBB"
366 ,"CreateNetworkBB","ActivateNetworkBB","CreateVolumeGroupBB","ActivateVolumeGroupBB","CreateVfModuleBB","ActivateVfModuleBB","AssignFabricConfigurationBB","ActivateFabricConfigurationBB"
367 ,"ActivateVnfBB","ActivateNetworkCollectionBB","ActivateServiceInstanceBB");
368 northBoundRequest.setOrchestrationFlowList(orchFlows);
370 Service service = new Service();
371 doReturn(service).when(catalogDbClient).getServiceByID("3c40d244-808e-42ca-b09a-256d83d19d0a");
372 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction,resource,false,"my-custom-cloud-owner")).thenReturn(northBoundRequest);
373 workflowAction.selectExecutionList(execution);
374 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
375 assertEqualsBulkFlowName(ebbs,"AssignServiceInstanceBB","ActivateServiceInstanceBB");
379 public void selectExecutionListServiceMacroCreateJustNetworkTest() throws Exception{
380 String gAction = "createInstance";
381 String resource = "Service";
382 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
383 execution.setVariable("requestAction", gAction);
384 String bpmnRequest = new String(Files.readAllBytes(Paths.get("src/test/resources/__files/Macro/ServiceMacroActivateDeleteUnassign.json")));
385 execution.setVariable("bpmnRequest", bpmnRequest);
386 execution.setVariable("aLaCarte", false);
387 execution.setVariable("apiVersion", "7");
388 execution.setVariable("requestUri", "v6/serviceInstances/123");
391 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
392 northBoundRequest.setIsToplevelflow(true);
393 List<OrchestrationFlow> orchFlows = createFlowList("AssignServiceInstanceBB","CreateNetworkCollectionBB","AssignNetworkBB","AssignVnfBB","AssignVolumeGroupBB","AssignVfModuleBB"
394 ,"CreateNetworkBB","ActivateNetworkBB","CreateVolumeGroupBB","ActivateVolumeGroupBB","CreateVfModuleBB","ActivateVfModuleBB","AssignFabricConfigurationBB","ActivateFabricConfigurationBB"
395 ,"ActivateVnfBB","ActivateNetworkCollectionBB","ActivateServiceInstanceBB");
396 northBoundRequest.setOrchestrationFlowList(orchFlows);
398 Service service = new Service();
399 NetworkResourceCustomization networkCustomization = new NetworkResourceCustomization();
400 networkCustomization.setModelCustomizationUUID("1234");
401 service.getNetworkCustomizations().add(networkCustomization);
402 doReturn(service).when(catalogDbClient).getServiceByID("3c40d244-808e-42ca-b09a-256d83d19d0a");
403 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction,resource,false,"my-custom-cloud-owner")).thenReturn(northBoundRequest);
404 workflowAction.selectExecutionList(execution);
405 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
406 assertEqualsBulkFlowName(ebbs,"AssignServiceInstanceBB","AssignNetworkBB","CreateNetworkBB","ActivateNetworkBB","ActivateServiceInstanceBB");
410 public void selectExecutionListServiceMacroCreateWithNetworkCollectionTest() throws Exception{
411 String gAction = "createInstance";
412 String resource = "Service";
413 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
414 execution.setVariable("requestAction", gAction);
415 String bpmnRequest = new String(Files.readAllBytes(Paths.get("src/test/resources/__files/Macro/ServiceMacroActivateDeleteUnassign.json")));
416 execution.setVariable("bpmnRequest", bpmnRequest);
417 execution.setVariable("aLaCarte", false);
418 execution.setVariable("apiVersion", "7");
419 execution.setVariable("requestUri", "v6/serviceInstances/123");
422 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
423 northBoundRequest.setIsToplevelflow(true);
424 List<OrchestrationFlow> orchFlows = createFlowList("AssignServiceInstanceBB","CreateNetworkCollectionBB","AssignNetworkBB","AssignVnfBB","AssignVolumeGroupBB","AssignVfModuleBB"
425 ,"CreateNetworkBB","ActivateNetworkBB","CreateVolumeGroupBB","ActivateVolumeGroupBB","CreateVfModuleBB","ActivateVfModuleBB","AssignFabricConfigurationBB","ActivateFabricConfigurationBB"
426 ,"ActivateVnfBB","ActivateNetworkCollectionBB","ActivateServiceInstanceBB");
427 northBoundRequest.setOrchestrationFlowList(orchFlows);
429 Service service = new Service();
430 List<NetworkResourceCustomization> networkCustomizations = new ArrayList<>();
431 NetworkResourceCustomization networkCust = new NetworkResourceCustomization();
432 networkCust.setModelCustomizationUUID("123");
433 networkCustomizations.add(networkCust);
434 service.setNetworkCustomizations(networkCustomizations);
435 NetworkCollectionResourceCustomization collectionResourceCustomization = new NetworkCollectionResourceCustomization();
436 collectionResourceCustomization.setModelCustomizationUUID("123");
438 CollectionResource collectionResource = new CollectionResource();
439 collectionResource.setToscaNodeType("NetworkCollection");
440 InstanceGroup instanceGroup = new InstanceGroup();
441 instanceGroup.setToscaNodeType("NetworkCollectionResource");
442 instanceGroup.setCollectionNetworkResourceCustomizations(new ArrayList<>());
443 CollectionNetworkResourceCustomization collectionNetworkResourceCust = new CollectionNetworkResourceCustomization();
444 collectionNetworkResourceCust.setModelCustomizationUUID("123");
445 collectionNetworkResourceCust.setNetworkResourceCustomization(collectionResourceCustomization);
446 instanceGroup.getCollectionNetworkResourceCustomizations().add(collectionNetworkResourceCust );
447 List<CollectionResourceInstanceGroupCustomization> collectionInstanceGroupCustomizations = new ArrayList<>();
448 CollectionResourceInstanceGroupCustomization collectionInstanceGroupCustomization = new CollectionResourceInstanceGroupCustomization();
449 collectionInstanceGroupCustomization.setModelCustomizationUUID("123");
450 collectionInstanceGroupCustomization.setSubInterfaceNetworkQuantity(3);
451 collectionInstanceGroupCustomizations.add(collectionInstanceGroupCustomization);
452 collectionInstanceGroupCustomization.setInstanceGroup(instanceGroup);
453 collectionInstanceGroupCustomization.setCollectionResourceCust(collectionResourceCustomization);
454 instanceGroup.setCollectionInstanceGroupCustomizations(collectionInstanceGroupCustomizations);
455 collectionResource.setInstanceGroup(instanceGroup);
456 collectionResourceCustomization.setCollectionResource(collectionResource);;
457 service.getCollectionResourceCustomizations().add(collectionResourceCustomization);
458 doReturn(service).when(catalogDbClient).getServiceByID("3c40d244-808e-42ca-b09a-256d83d19d0a");
459 doReturn(collectionResourceCustomization).when(catalogDbClient).getNetworkCollectionResourceCustomizationByID("123");
460 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction,resource,false,"my-custom-cloud-owner")).thenReturn(northBoundRequest);
461 workflowAction.selectExecutionList(execution);
462 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
463 assertEqualsBulkFlowName(ebbs,"AssignServiceInstanceBB","CreateNetworkCollectionBB","AssignNetworkBB","CreateNetworkBB","ActivateNetworkBB","AssignNetworkBB","CreateNetworkBB","ActivateNetworkBB"
464 ,"AssignNetworkBB","CreateNetworkBB","ActivateNetworkBB","ActivateNetworkCollectionBB","ActivateServiceInstanceBB");
465 assertEquals("Network id not empty", !ebbs.get(2).getWorkflowResourceIds().getNetworkId().isEmpty(), true);
466 assertEquals("Network id not empty", !ebbs.get(3).getWorkflowResourceIds().getNetworkId().isEmpty(), true);
467 assertEquals("Network id not empty", !ebbs.get(4).getWorkflowResourceIds().getNetworkId().isEmpty(), true);
468 assertEquals("Network id same for AssignNetworkBB CreateNetworkBB ActivateNetworkBB",
469 ebbs.get(2).getWorkflowResourceIds().getNetworkId() == ebbs.get(3).getWorkflowResourceIds().getNetworkId()
470 && ebbs.get(3).getWorkflowResourceIds().getNetworkId() == ebbs.get(4).getWorkflowResourceIds().getNetworkId(), true);
471 assertEquals("Network id not empty", !ebbs.get(5).getWorkflowResourceIds().getNetworkId().isEmpty(), true);
472 assertEquals("Network id not empty", !ebbs.get(6).getWorkflowResourceIds().getNetworkId().isEmpty(), true);
473 assertEquals("Network id not empty", !ebbs.get(7).getWorkflowResourceIds().getNetworkId().isEmpty(), true);
474 assertEquals("Network id same for AssignNetworkBB CreateNetworkBB ActivateNetworkBB",
475 ebbs.get(5).getWorkflowResourceIds().getNetworkId() == ebbs.get(6).getWorkflowResourceIds().getNetworkId()
476 && ebbs.get(6).getWorkflowResourceIds().getNetworkId() == ebbs.get(7).getWorkflowResourceIds().getNetworkId(), true);
477 assertEquals("Network id not empty", !ebbs.get(8).getWorkflowResourceIds().getNetworkId().isEmpty(), true);
478 assertEquals("Network id not empty", !ebbs.get(9).getWorkflowResourceIds().getNetworkId().isEmpty(), true);
479 assertEquals("Network id not empty", !ebbs.get(10).getWorkflowResourceIds().getNetworkId().isEmpty(), true);
480 assertEquals("Network id same for AssignNetworkBB CreateNetworkBB ActivateNetworkBB",
481 ebbs.get(8).getWorkflowResourceIds().getNetworkId() == ebbs.get(9).getWorkflowResourceIds().getNetworkId()
482 && ebbs.get(9).getWorkflowResourceIds().getNetworkId() == ebbs.get(10).getWorkflowResourceIds().getNetworkId(), true);
486 public void selectExecutionListServiceMacroCreateWithUserParams() throws Exception{
487 String gAction = "createInstance";
488 String resource = "Service";
489 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
490 execution.setVariable("requestAction", gAction);
491 String bpmnRequest = new String(Files.readAllBytes(Paths.get("src/test/resources/__files/Macro/ServiceMacroAssign.json")));
492 execution.setVariable("bpmnRequest", bpmnRequest);
493 execution.setVariable("aLaCarte", false);
494 execution.setVariable("apiVersion", "7");
495 execution.setVariable("requestUri", "v6/serviceInstances/123");
498 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
499 List<OrchestrationFlow> orchFlows = createFlowList("AssignServiceInstanceBB","CreateNetworkCollectionBB","AssignNetworkBB","AssignVnfBB","AssignVolumeGroupBB","AssignVfModuleBB"
500 ,"CreateNetworkBB","ActivateNetworkBB","CreateVolumeGroupBB","ActivateVolumeGroupBB","CreateVfModuleBB","ActivateVfModuleBB","AssignFabricConfigurationBB","ActivateFabricConfigurationBB"
501 ,"ActivateVnfBB","ActivateNetworkCollectionBB","ActivateServiceInstanceBB");
502 northBoundRequest.setOrchestrationFlowList(orchFlows);
504 Service service = new Service();
505 service.setModelUUID("3c40d244-808e-42ca-b09a-256d83d19d0a");
507 VfModuleCustomization vfModuleCustomization = new VfModuleCustomization();
508 vfModuleCustomization.setModelCustomizationUUID("a25e8e8c-58b8-4eec-810c-97dcc1f5cb7f");
509 HeatEnvironment volumeHeatEnv = new HeatEnvironment();
510 vfModuleCustomization.setVolumeHeatEnv(volumeHeatEnv);
511 org.onap.so.db.catalog.beans.VfModule vfModule = new org.onap.so.db.catalog.beans.VfModule();
512 HeatTemplate volumeHeatTemplate = new HeatTemplate();
513 vfModule.setVolumeHeatTemplate(volumeHeatTemplate);
514 vfModuleCustomization.setVfModule(vfModule);
516 VfModuleCustomization vfModuleCustomization2 = new VfModuleCustomization();
517 vfModuleCustomization2.setModelCustomizationUUID("72d9d1cd-f46d-447a-abdb-451d6fb05fa8");
518 HeatEnvironment heatEnvironment = new HeatEnvironment();
519 vfModuleCustomization2.setHeatEnvironment(heatEnvironment);
520 org.onap.so.db.catalog.beans.VfModule vfModule2 = new org.onap.so.db.catalog.beans.VfModule();
521 HeatTemplate moduleHeatTemplate = new HeatTemplate();
522 vfModule2.setModuleHeatTemplate(moduleHeatTemplate);
523 vfModuleCustomization2.setVfModule(vfModule2);
525 VfModuleCustomization vfModuleCustomization3 = vfModuleCustomization2;
526 vfModuleCustomization3.setModelCustomizationUUID("72d9d1cd-f46d-447a-abdb-451d6fb05fa8");
528 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction,resource,false,"my-custom-cloud-owner")).thenReturn(northBoundRequest);
529 when(catalogDbClient.getVfModuleCustomizationByModelCuztomizationUUID("a25e8e8c-58b8-4eec-810c-97dcc1f5cb7f")).thenReturn(vfModuleCustomization);
530 when(catalogDbClient.getVfModuleCustomizationByModelCuztomizationUUID("72d9d1cd-f46d-447a-abdb-451d6fb05fa8")).thenReturn(vfModuleCustomization2);
531 when(catalogDbClient.getVfModuleCustomizationByModelCuztomizationUUID("da4d4327-fb7d-4311-ac7a-be7ba60cf969")).thenReturn(vfModuleCustomization3);
532 when(catalogDbClient.getServiceByID("3c40d244-808e-42ca-b09a-256d83d19d0a")).thenReturn(service);
533 workflowAction.selectExecutionList(execution);
534 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
535 assertEqualsBulkFlowName(ebbs,"AssignServiceInstanceBB","AssignVnfBB","AssignVolumeGroupBB","AssignVfModuleBB","AssignVfModuleBB","AssignVfModuleBB","CreateVolumeGroupBB"
536 ,"ActivateVolumeGroupBB","CreateVfModuleBB","CreateVfModuleBB","CreateVfModuleBB","ActivateVfModuleBB","ActivateVfModuleBB","ActivateVfModuleBB","ActivateVnfBB","ActivateServiceInstanceBB");
537 assertEquals(3,ebbs.get(0).getWorkflowResourceIds().getServiceInstanceId().length());
538 int randomUUIDLength = UUID.randomUUID().toString().length();
539 assertEquals(randomUUIDLength,ebbs.get(1).getWorkflowResourceIds().getVnfId().length());
540 assertEquals(randomUUIDLength,ebbs.get(2).getWorkflowResourceIds().getVolumeGroupId().length());
541 assertEquals(randomUUIDLength,ebbs.get(3).getWorkflowResourceIds().getVfModuleId().length());
542 assertEquals(randomUUIDLength,ebbs.get(4).getWorkflowResourceIds().getVfModuleId().length());
543 assertEquals(randomUUIDLength,ebbs.get(5).getWorkflowResourceIds().getVfModuleId().length());
544 assertEquals(randomUUIDLength,ebbs.get(6).getWorkflowResourceIds().getVolumeGroupId().length());
545 assertEquals(randomUUIDLength,ebbs.get(7).getWorkflowResourceIds().getVolumeGroupId().length());
546 assertEquals(randomUUIDLength,ebbs.get(8).getWorkflowResourceIds().getVfModuleId().length());
547 assertEquals(randomUUIDLength,ebbs.get(9).getWorkflowResourceIds().getVfModuleId().length());
548 assertEquals(randomUUIDLength,ebbs.get(10).getWorkflowResourceIds().getVfModuleId().length());
549 assertEquals(randomUUIDLength,ebbs.get(11).getWorkflowResourceIds().getVfModuleId().length());
550 assertEquals(randomUUIDLength,ebbs.get(12).getWorkflowResourceIds().getVfModuleId().length());
551 assertEquals(randomUUIDLength,ebbs.get(13).getWorkflowResourceIds().getVfModuleId().length());
552 assertEquals(randomUUIDLength,ebbs.get(14).getWorkflowResourceIds().getVnfId().length());
553 assertEquals(3,ebbs.get(0).getWorkflowResourceIds().getServiceInstanceId().length());
554 assertEquals(true, execution.getVariable("homing"));
558 public void selectExecutionListServiceMacroDeleteTest() throws Exception{
559 String gAction = "deleteInstance";
560 String resource = "Service";
561 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
562 execution.setVariable("requestAction", gAction);
563 String bpmnRequest = new String(Files.readAllBytes(Paths.get("src/test/resources/__files/Macro/ServiceMacroActivateDeleteUnassign.json")));
564 execution.setVariable("bpmnRequest", bpmnRequest);
565 execution.setVariable("aLaCarte", false);
566 execution.setVariable("apiVersion", "7");
567 execution.setVariable("requestUri", "v6/serviceInstances/123");
570 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
571 List<OrchestrationFlow> orchFlows = createFlowList("DeactivateVfModuleBB","DeleteVfModuleBB","DeactivateVolumeGroupBB","DeleteVolumeGroupBB","DeactivateVnfBB","DeactivateNetworkBB"
572 ,"DeleteNetworkBB","DeleteNetworkCollectionBB","DeactivateServiceInstanceBB","UnassignVfModuleBB","UnassignVolumeGroupBB","UnassignVnfBB","UnassignNetworkBB","UnassignServiceInstanceBB");
573 northBoundRequest.setOrchestrationFlowList(orchFlows);
575 ServiceInstance serviceInstanceAAI = new ServiceInstance();
576 serviceInstanceAAI.setServiceInstanceId("aaisi123");
577 org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance serviceInstanceMSO = new org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance();
578 org.onap.so.bpmn.servicedecomposition.bbobjects.GenericVnf vnf = new org.onap.so.bpmn.servicedecomposition.bbobjects.GenericVnf();
579 vnf.setVnfId("vnfId123");
581 org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule vfModule = new org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule();
582 vfModule.setVfModuleId("vfModule1");
583 vnf.getVfModules().add(vfModule);
584 org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule vfModule2 = new org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule();
585 vfModule2.setVfModuleId("vfModule2");
586 vnf.getVfModules().add(vfModule2);
588 org.onap.so.bpmn.servicedecomposition.bbobjects.VolumeGroup volumeGroup = new org.onap.so.bpmn.servicedecomposition.bbobjects.VolumeGroup();
589 volumeGroup.setVolumeGroupId("vg123");
590 vnf.getVolumeGroups().add(volumeGroup);
592 serviceInstanceMSO.getVnfs().add(vnf);
594 doReturn(serviceInstanceAAI).when(bbSetupUtils).getAAIServiceInstanceById("123");
595 doReturn(serviceInstanceMSO).when(bbInputSetup).getExistingServiceInstance(serviceInstanceAAI);
596 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction,resource,false,"my-custom-cloud-owner")).thenReturn(northBoundRequest);
597 workflowAction.selectExecutionList(execution);
598 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
599 assertEqualsBulkFlowName(ebbs,"DeactivateVfModuleBB","DeactivateVfModuleBB","DeleteVfModuleBB","DeleteVfModuleBB","DeactivateVolumeGroupBB","DeleteVolumeGroupBB","DeactivateVnfBB"
600 ,"DeactivateServiceInstanceBB","UnassignVfModuleBB","UnassignVfModuleBB","UnassignVolumeGroupBB","UnassignVnfBB","UnassignServiceInstanceBB");
604 public void selectExecutionListServiceMacroUnassignTest() throws Exception{
605 String gAction = "unassignInstance";
606 String resource = "Service";
607 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
608 execution.setVariable("requestAction", gAction);
609 String bpmnRequest = new String(Files.readAllBytes(Paths.get("src/test/resources/__files/Macro/ServiceMacroActivateDeleteUnassign.json")));
610 execution.setVariable("bpmnRequest", bpmnRequest);
611 execution.setVariable("aLaCarte", false);
612 execution.setVariable("apiVersion", "7");
613 execution.setVariable("requestUri", "v6/serviceInstances/123");
616 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
617 List<OrchestrationFlow> orchFlows = createFlowList("UnassignVfModuleBB","UnassignVolumeGroupBB","UnassignVnfBB","UnassignNetworkBB","UnassignServiceInstanceBB");
618 northBoundRequest.setOrchestrationFlowList(orchFlows);
620 ServiceInstance serviceInstanceAAI = new ServiceInstance();
621 serviceInstanceAAI.setServiceInstanceId("aaisi123");
622 org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance serviceInstanceMSO = new org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance();
623 org.onap.so.bpmn.servicedecomposition.bbobjects.GenericVnf vnf = new org.onap.so.bpmn.servicedecomposition.bbobjects.GenericVnf();
624 vnf.setVnfId("vnfId123");
626 org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule vfModule = new org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule();
627 vfModule.setVfModuleId("vfModule1");
628 vnf.getVfModules().add(vfModule);
629 org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule vfModule2 = new org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule();
630 vfModule2.setVfModuleId("vfModule2");
631 vnf.getVfModules().add(vfModule2);
633 org.onap.so.bpmn.servicedecomposition.bbobjects.VolumeGroup volumeGroup = new org.onap.so.bpmn.servicedecomposition.bbobjects.VolumeGroup();
634 volumeGroup.setVolumeGroupId("vg123");
635 vnf.getVolumeGroups().add(volumeGroup);
637 serviceInstanceMSO.getVnfs().add(vnf);
639 doReturn(serviceInstanceAAI).when(bbSetupUtils).getAAIServiceInstanceById("123");
640 doReturn(serviceInstanceMSO).when(bbInputSetup).getExistingServiceInstance(serviceInstanceAAI);
641 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction,resource,false,"my-custom-cloud-owner")).thenReturn(northBoundRequest);
642 workflowAction.selectExecutionList(execution);
643 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
644 assertEqualsBulkFlowName(ebbs,"UnassignVfModuleBB","UnassignVfModuleBB","UnassignVolumeGroupBB","UnassignVnfBB","UnassignServiceInstanceBB");
648 public void selectExecutionListServiceMacroDeleteNetworkCollectionTest() throws Exception{
649 String gAction = "deleteInstance";
650 String resource = "Service";
651 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
652 execution.setVariable("requestAction", gAction);
653 String bpmnRequest = new String(Files.readAllBytes(Paths.get("src/test/resources/__files/Macro/ServiceMacroActivateDeleteUnassign.json")));
654 execution.setVariable("bpmnRequest", bpmnRequest);
655 execution.setVariable("aLaCarte", false);
656 execution.setVariable("apiVersion", "7");
657 execution.setVariable("requestUri", "v6/serviceInstances/123");
660 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
661 List<OrchestrationFlow> orchFlows = createFlowList("DeactivateVfModuleBB","DeleteVfModuleBB","DeactivateVolumeGroupBB","DeleteVolumeGroupBB","DeactivateVnfBB","DeactivateNetworkBB"
662 ,"DeleteNetworkBB","DeleteNetworkCollectionBB","DeactivateServiceInstanceBB","UnassignVfModuleBB","UnassignVolumeGroupBB","UnassignVnfBB","UnassignNetworkBB","UnassignServiceInstanceBB");
663 northBoundRequest.setOrchestrationFlowList(orchFlows);
665 ServiceInstance serviceInstanceAAI = new ServiceInstance();
666 serviceInstanceAAI.setServiceInstanceId("aaisi123");
667 org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance serviceInstanceMSO = new org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance();
669 org.onap.so.bpmn.servicedecomposition.bbobjects.L3Network network = new org.onap.so.bpmn.servicedecomposition.bbobjects.L3Network();
670 network.setNetworkId("123");
671 serviceInstanceMSO.getNetworks().add(network);
672 org.onap.so.bpmn.servicedecomposition.bbobjects.L3Network network2 = new org.onap.so.bpmn.servicedecomposition.bbobjects.L3Network();
673 network2.setNetworkId("321");
674 serviceInstanceMSO.getNetworks().add(network2);
676 Collection collection = new Collection();
677 serviceInstanceMSO.setCollection(collection);
679 doReturn(serviceInstanceAAI).when(bbSetupUtils).getAAIServiceInstanceById("123");
680 doReturn(serviceInstanceMSO).when(bbInputSetup).getExistingServiceInstance(serviceInstanceAAI);
681 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction,resource,false,"my-custom-cloud-owner")).thenReturn(northBoundRequest);
682 workflowAction.selectExecutionList(execution);
683 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
684 assertEqualsBulkFlowName(ebbs,"DeactivateNetworkBB","DeleteNetworkBB","UnassignNetworkBB","DeactivateNetworkBB","DeleteNetworkBB","UnassignNetworkBB","DeleteNetworkCollectionBB"
685 ,"DeactivateServiceInstanceBB","UnassignServiceInstanceBB");
690 public void selectExecutionListNetworkCollectionMacroCreate() throws Exception{
691 String gAction = "createInstance";
692 String resource = "NetworkCollection";
693 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
694 execution.setVariable("requestAction", gAction);
695 String bpmnRequest = new String(Files.readAllBytes(Paths.get("src/test/resources/__files/Macro/CreateNetworkCollection.json")));
696 execution.setVariable("bpmnRequest", bpmnRequest);
697 execution.setVariable("aLaCarte", false);
698 execution.setVariable("apiVersion", "7");
699 execution.setVariable("requestUri", "v6/serviceInstances/123/networkCollections/123");
702 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
703 List<OrchestrationFlow> orchFlows = createFlowList("CreateNetworkCollectionBB","AssignNetworkBB","CreateNetworkBB","ActivateNetworkBB","ActivateNetworkCollectionBB");
704 northBoundRequest.setOrchestrationFlowList(orchFlows);
706 Service service = new Service();
707 CollectionResourceCustomization collectionResourceCustomization = new CollectionResourceCustomization();
708 CollectionResource collectionResource = new CollectionResource();
709 collectionResource.setToscaNodeType("Data NetworkCollection Data");
710 collectionResourceCustomization.setCollectionResource(collectionResource);
711 service.getCollectionResourceCustomizations().add(collectionResourceCustomization);
713 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction,resource,false,"my-custom-cloud-owner")).thenReturn(northBoundRequest);
714 when(catalogDbClient.getServiceByID("3c40d244-808e-42ca-b09a-256d83d19d0a")).thenReturn(service);
715 workflowAction.selectExecutionList(execution);
716 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
717 assertEqualsBulkFlowName(ebbs,"CreateNetworkCollectionBB","AssignNetworkBB","CreateNetworkBB","ActivateNetworkBB","AssignNetworkBB","CreateNetworkBB","ActivateNetworkBB","ActivateNetworkCollectionBB");
722 public void selectExecutionListNetworkCollectionMacroDelete() throws Exception{
723 String gAction = "deleteInstance";
724 String resource = "NetworkCollection";
725 execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
726 execution.setVariable("requestAction", gAction);
727 String bpmnRequest = new String(Files.readAllBytes(Paths.get("src/test/resources/__files/Macro/CreateNetworkCollection.json")));
728 execution.setVariable("bpmnRequest", bpmnRequest);
729 execution.setVariable("aLaCarte", false);
730 execution.setVariable("apiVersion", "7");
731 execution.setVariable("requestUri", "v6/serviceInstances/123/networkCollections/123");
733 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
734 List<OrchestrationFlow> orchFlows = createFlowList("DeactivateNetworkBB","DeleteNetworkBB","UnassignNetworkBB","DeactivateNetworkCollectionBB","DeleteNetworkCollectionBB");
735 northBoundRequest.setOrchestrationFlowList(orchFlows);
737 Service service = new Service();
738 CollectionResourceCustomization collectionResourceCustomization = new CollectionResourceCustomization();
739 CollectionResource collectionResource = new CollectionResource();
740 collectionResource.setToscaNodeType("Data NetworkCollection Data");
741 collectionResourceCustomization.setCollectionResource(collectionResource);
742 service.getCollectionResourceCustomizations().add(collectionResourceCustomization);
744 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction,resource,false,"my-custom-cloud-owner")).thenReturn(northBoundRequest);
745 when(catalogDbClient.getServiceByID("3c40d244-808e-42ca-b09a-256d83d19d0a")).thenReturn(service);
746 workflowAction.selectExecutionList(execution);
747 List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
748 assertEqualsBulkFlowName(ebbs,"DeactivateNetworkBB","DeleteNetworkBB","UnassignNetworkBB","DeactivateNetworkBB","DeleteNetworkBB","UnassignNetworkBB","DeactivateNetworkCollectionBB"
749 ,"DeleteNetworkCollectionBB");
753 * WorkflowActionBB Tests
757 public void pluralTest() {
758 List<String> items = Arrays.asList(
759 "serviceInstances, Service",
761 "vfModules, VfModule",
763 "invalidNames, invalidNames");
764 items.forEach(item -> {
765 String[] split = item.split(",");
766 String type = split[0].trim();
767 String expected = split[1].trim();
768 assertThat(workflowAction.convertTypeFromPlural(type), equalTo(expected));
773 public void sortExecutionPathByObjectForVlanTaggingCreateTest() throws Exception{
774 List<ExecuteBuildingBlock> executeFlows = new ArrayList<>();
775 ExecuteBuildingBlock ebb = new ExecuteBuildingBlock();
776 BuildingBlock bb = new BuildingBlock();
777 bb.setBpmnFlowName("AssignNetworkBB");
779 ebb.setBuildingBlock(bb);
780 executeFlows.add(ebb);
781 ExecuteBuildingBlock ebb2 = new ExecuteBuildingBlock();
782 BuildingBlock bb2 = new BuildingBlock();
783 bb2.setBpmnFlowName("AssignNetworkBB");
785 ebb2.setBuildingBlock(bb2);
786 executeFlows.add(ebb2);
787 ExecuteBuildingBlock ebb3 = new ExecuteBuildingBlock();
788 BuildingBlock bb3 = new BuildingBlock();
789 bb3.setBpmnFlowName("CreateNetworkBB");
791 ebb3.setBuildingBlock(bb3);
792 executeFlows.add(ebb3);
793 ExecuteBuildingBlock ebb4 = new ExecuteBuildingBlock();
794 BuildingBlock bb4 = new BuildingBlock();
795 bb4.setBpmnFlowName("CreateNetworkBB");
797 ebb4.setBuildingBlock(bb4);
798 executeFlows.add(ebb4);
799 ExecuteBuildingBlock ebb5 = new ExecuteBuildingBlock();
800 BuildingBlock bb5 = new BuildingBlock();
801 bb5.setBpmnFlowName("ActivateNetworkBB");
803 ebb5.setBuildingBlock(bb5);
804 executeFlows.add(ebb5);
805 ExecuteBuildingBlock ebb6 = new ExecuteBuildingBlock();
806 BuildingBlock bb6 = new BuildingBlock();
807 bb6.setBpmnFlowName("ActivateNetworkBB");
809 ebb6.setBuildingBlock(bb6);
810 executeFlows.add(ebb6);
812 List<ExecuteBuildingBlock> sorted = workflowAction.sortExecutionPathByObjectForVlanTagging(executeFlows,"createInstance");
813 assertEqualsBulkFlowName(sorted,"AssignNetworkBB","CreateNetworkBB","ActivateNetworkBB","AssignNetworkBB","CreateNetworkBB","ActivateNetworkBB");
817 public void sortExecutionPathByObjectForVlanTaggingDeleteTest() throws Exception{
818 List<ExecuteBuildingBlock> executeFlows = new ArrayList<>();
819 ExecuteBuildingBlock ebb = new ExecuteBuildingBlock();
820 BuildingBlock bb = new BuildingBlock();
821 bb.setBpmnFlowName("DeactivateNetworkBB");
823 ebb.setBuildingBlock(bb);
824 executeFlows.add(ebb);
825 ExecuteBuildingBlock ebb2 = new ExecuteBuildingBlock();
826 BuildingBlock bb2 = new BuildingBlock();
827 bb2.setBpmnFlowName("DeactivateNetworkBB");
829 ebb2.setBuildingBlock(bb2);
830 executeFlows.add(ebb2);
831 ExecuteBuildingBlock ebb3 = new ExecuteBuildingBlock();
832 BuildingBlock bb3 = new BuildingBlock();
833 bb3.setBpmnFlowName("DeleteNetworkBB");
835 ebb3.setBuildingBlock(bb3);
836 executeFlows.add(ebb3);
837 ExecuteBuildingBlock ebb4 = new ExecuteBuildingBlock();
838 BuildingBlock bb4 = new BuildingBlock();
839 bb4.setBpmnFlowName("DeleteNetworkBB");
841 ebb4.setBuildingBlock(bb4);
842 executeFlows.add(ebb4);
843 ExecuteBuildingBlock ebb5 = new ExecuteBuildingBlock();
844 BuildingBlock bb5 = new BuildingBlock();
845 bb5.setBpmnFlowName("UnassignNetworkBB");
847 ebb5.setBuildingBlock(bb5);
848 executeFlows.add(ebb5);
849 ExecuteBuildingBlock ebb6 = new ExecuteBuildingBlock();
850 BuildingBlock bb6 = new BuildingBlock();
851 bb6.setBpmnFlowName("UnassignNetworkBB");
853 ebb6.setBuildingBlock(bb6);
854 executeFlows.add(ebb6);
856 List<ExecuteBuildingBlock> sorted = workflowAction.sortExecutionPathByObjectForVlanTagging(executeFlows,"deleteInstance");
857 assertEqualsBulkFlowName(sorted,"DeactivateNetworkBB","DeleteNetworkBB","UnassignNetworkBB","DeactivateNetworkBB","DeleteNetworkBB","UnassignNetworkBB");
860 public void queryNorthBoundRequestCatalogDbNestedTest() throws MalformedURLException {
861 NorthBoundRequest northBoundRequest = new NorthBoundRequest();
862 List<OrchestrationFlow> orchFlows = createFlowList("AAICheckVnfInMaintBB","AAISetVnfInMaintBB","VNF-Macro-Replace","SDNOVnfHealthCheckBB","AAIUnsetVnfInMaintBB");
863 northBoundRequest.setOrchestrationFlowList(orchFlows);
864 List<OrchestrationFlow> macroFlows = createFlowList("DeactivateVfModuleBB","DeleteVfModuleBB","DeactivateVnfBB","CreateVfModuleBB","ActivateVfModuleBB","ActivateVnfBB");
866 when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner("replaceInstance","Vnf",false,"my-custom-cloud-owner")).thenReturn(northBoundRequest);
867 when(catalogDbClient.getOrchestrationFlowByAction("VNF-Macro-Replace")).thenReturn(macroFlows);
868 List<OrchestrationFlow> flows = workflowAction.queryNorthBoundRequestCatalogDb(execution, "replaceInstance", WorkflowType.VNF, false,"my-custom-cloud-owner");
869 assertEquals(flows.get(0).getFlowName(),"AAICheckVnfInMaintBB");
870 assertEquals(flows.get(1).getFlowName(),"AAISetVnfInMaintBB");
871 assertEquals(flows.get(2).getFlowName(),"DeactivateVfModuleBB");
872 assertEquals(flows.get(3).getFlowName(),"DeleteVfModuleBB");
873 assertEquals(flows.get(4).getFlowName(),"DeactivateVnfBB");
874 assertEquals(flows.get(5).getFlowName(),"CreateVfModuleBB");
875 assertEquals(flows.get(6).getFlowName(),"ActivateVfModuleBB");
876 assertEquals(flows.get(7).getFlowName(),"ActivateVnfBB");
877 assertEquals(flows.get(8).getFlowName(),"SDNOVnfHealthCheckBB");
878 assertEquals(flows.get(9).getFlowName(),"AAIUnsetVnfInMaintBB");
882 public void extractResourceIdAndTypeFromUriTest(){
883 String uri = "/v6/serviceInstances/123";
884 String uri2 = "/v6/serviceInstances/123/vnfs/1234";
885 String uri3 = "/v6/serviceInstances";
886 String uri4 = "/v6/serviceInstances/assign";
887 String uri5 = "'/v6/serviceInstances/123/vnfs";
888 String uri6 = "/v6/serviceInstances/123/vnfs/1234/someAction";
889 String uri7 = "/v6/serviceInstances/123/vnfs/1234/vfModules/5678/replace";
890 String uri8 = "/v6/serviceInstances/123/vnfs/1234/vfModules/scaleOut";
891 Resource expected1 = new Resource(WorkflowType.SERVICE, "123", true);
892 Resource expected2 = new Resource(WorkflowType.VNF, "1234", false);
893 Resource expected3 = new Resource(WorkflowType.VNF, "1234", false);
894 Resource expected4 = new Resource(WorkflowType.VFMODULE, "5678", false);
895 Resource result = workflowAction.extractResourceIdAndTypeFromUri(uri);
896 assertEquals(expected1.getResourceId(),result.getResourceId());
897 assertEquals(expected1.getResourceType(),result.getResourceType());
898 result = workflowAction.extractResourceIdAndTypeFromUri(uri2);
899 assertEquals(expected2.getResourceId(),result.getResourceId());
900 assertEquals(expected2.getResourceType(),result.getResourceType());
901 result = workflowAction.extractResourceIdAndTypeFromUri(uri3);
902 assertEquals("Service", result.getResourceType().toString());
903 assertEquals(UUID.randomUUID().toString().length(),result.getResourceId().length());
904 result = workflowAction.extractResourceIdAndTypeFromUri(uri4);
905 assertEquals("Service", result.getResourceType().toString());
906 assertEquals(UUID.randomUUID().toString().length(),result.getResourceId().length());
907 result = workflowAction.extractResourceIdAndTypeFromUri(uri5);
908 assertEquals("Vnf", result.getResourceType().toString());
909 assertEquals(UUID.randomUUID().toString().length(),result.getResourceId().length());
910 result = workflowAction.extractResourceIdAndTypeFromUri(uri6);
911 assertEquals(expected3.getResourceId(),result.getResourceId());
912 assertEquals(expected3.getResourceType(),result.getResourceType());
913 result = workflowAction.extractResourceIdAndTypeFromUri(uri7);
914 assertEquals(expected4.getResourceId(),result.getResourceId());
915 assertEquals(expected4.getResourceType(),result.getResourceType());
916 result = workflowAction.extractResourceIdAndTypeFromUri(uri8);
917 assertEquals(UUID.randomUUID().toString().length(),result.getResourceId().length());
918 assertEquals("VfModule", result.getResourceType().toString());
923 public void extractResourceIdAndTypeFromUriInvalidTypeTest() {
924 this.expectedException.expect(IllegalArgumentException.class);
925 this.expectedException.expectMessage(containsString("Uri could not be parsed. No type found."));
926 workflowAction.extractResourceIdAndTypeFromUri("/v6/serviceInstances/123/vnfs/1234/vfmodules/5678/replace");
930 public void extractResourceIdAndTypeFromUriInvalidUriTest() {
931 this.expectedException.expect(IllegalArgumentException.class);
932 this.expectedException.expectMessage(containsString("Uri could not be parsed:"));
933 workflowAction.extractResourceIdAndTypeFromUri("something that doesn't match anything");
937 public void populateResourceIdsFromApiHandlerTest(){
938 execution.setVariable("serviceInstanceId", "123");
939 execution.setVariable("vnfId", "888");
940 WorkflowResourceIds x = workflowAction.populateResourceIdsFromApiHandler(execution);
941 assertEquals("123",x.getServiceInstanceId());
942 assertEquals("888",x.getVnfId());
943 assertNull(x.getVolumeGroupId());
947 public void validateResourceIdInAAITest() throws Exception{
949 RequestDetails reqDetails = new RequestDetails();
950 SubscriberInfo subInfo = new SubscriberInfo();
951 subInfo.setGlobalSubscriberId("id123");
952 reqDetails.setSubscriberInfo(subInfo);
953 RequestParameters reqParams = new RequestParameters();
954 reqParams.setSubscriptionServiceType("subServiceType123");
955 reqDetails.setRequestParameters(reqParams );
956 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
957 ServiceInstance si = new ServiceInstance();
958 si.setServiceInstanceId("siId123");
959 Optional<ServiceInstance> siOp = Optional.of(si);
960 when(bbSetupUtils.getAAIServiceInstanceByName("id123", "subServiceType123", "siName123")).thenReturn(siOp);
961 when(bbSetupUtils.getAAIServiceInstanceByName("id123", "subServiceType123", "111111")).thenReturn(Optional.empty());
962 String id = workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.SERVICE, "siName123", reqDetails, workflowResourceIds);
963 assertEquals("siId123",id);
964 String id2 = workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.SERVICE, "111111", reqDetails, workflowResourceIds);
965 assertEquals("generatedId123",id2);
968 L3Network network = new L3Network();
969 network.setNetworkId("id123");
970 network.setNetworkName("name123");
971 workflowResourceIds.setServiceInstanceId("siId123");
972 Optional<L3Network> opNetwork = Optional.of(network);
973 when(bbSetupUtils.getRelatedNetworkByNameFromServiceInstance("siId123","name123")).thenReturn(opNetwork);
974 when(bbSetupUtils.getRelatedNetworkByNameFromServiceInstance("siId123","111111")).thenReturn(Optional.empty());
975 id = workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.NETWORK, "name123", reqDetails, workflowResourceIds);
976 assertEquals("id123",id);
977 id2 = workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.NETWORK, "111111", reqDetails, workflowResourceIds);
978 assertEquals("generatedId123",id2);
981 GenericVnf vnf = new GenericVnf();
982 vnf.setVnfId("id123");
983 vnf.setVnfName("vnfName123");
984 Optional<GenericVnf> opVnf = Optional.of(vnf);
985 when(bbSetupUtils.getRelatedVnfByNameFromServiceInstance("siId123","name123")).thenReturn(opVnf);
986 when(bbSetupUtils.getRelatedVnfByNameFromServiceInstance("siId123","111111")).thenReturn(Optional.empty());
987 id = workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.VNF, "name123", reqDetails, workflowResourceIds);
988 assertEquals("id123",id);
989 id2 = workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.VNF, "111111", reqDetails, workflowResourceIds);
990 assertEquals("generatedId123",id2);
993 VfModules vfModules = new VfModules();
994 VfModule vfModule = new VfModule();
995 vfModule.setVfModuleId("id123");
996 vfModule.setVfModuleName("name123");
997 vfModules.getVfModule().add(vfModule);
998 vnf.setVfModules(vfModules);
999 workflowResourceIds.setVnfId("id123");
1000 when(bbSetupUtils.getAAIGenericVnf("id123")).thenReturn(vnf);
1001 id = workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.VFMODULE, "name123", reqDetails, workflowResourceIds);
1002 assertEquals("id123",id);
1004 GenericVnf vnf2 = new GenericVnf();
1005 VfModules vfModules2 = new VfModules();
1006 VfModule vfModule2 = new VfModule();
1007 vfModule2.setVfModuleId("id123");
1008 vfModule2.setVfModuleName("name123");
1009 vfModules2.getVfModule().add(vfModule2);
1010 vnf2.setVfModules(vfModules2);
1011 workflowResourceIds.setVnfId("id111");
1012 when(bbSetupUtils.getAAIGenericVnf("id111")).thenReturn(vnf2);
1013 id2 = workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.VFMODULE, "111111", reqDetails, workflowResourceIds);
1014 assertEquals("generatedId123",id2);
1017 VolumeGroup volumeGroup = new VolumeGroup();
1018 volumeGroup.setVolumeGroupId("id123");
1019 volumeGroup.setVolumeGroupName("name123");
1020 workflowResourceIds.setVnfId("id123");
1021 Optional<VolumeGroup> opVolumeGroup = Optional.of(volumeGroup);
1022 when(bbSetupUtils.getRelatedVolumeGroupByNameFromVnf("id123","name123")).thenReturn(opVolumeGroup);
1023 id = workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.VOLUMEGROUP, "name123", reqDetails, workflowResourceIds);
1024 assertEquals("id123",id);
1026 workflowResourceIds.setVnfId("id444");
1027 when(bbSetupUtils.getAAIGenericVnf("id444")).thenReturn(vnf);
1028 when(bbSetupUtils.getRelatedVolumeGroupByNameFromVfModule("id123", "id123","111111")).thenReturn(opVolumeGroup);
1029 when(bbSetupUtils.getRelatedVolumeGroupByNameFromVnf("id444","111111")).thenReturn(Optional.empty());
1030 id2 = workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.VOLUMEGROUP, "111111", reqDetails, workflowResourceIds);
1031 assertEquals("id123",id2);
1035 public void handleRuntimeExceptionTest(){
1036 execution.setVariable("BPMN_javaExpMsg", "test runtime error message");
1037 execution.setVariable("testProcessKey", "testProcessKeyValue");
1039 workflowAction.handleRuntimeException(execution);
1040 } catch (BpmnError wfe) {
1041 assertEquals("MSOWorkflowException",wfe.getErrorCode());
1047 public void traverseCatalogDbServiceMultipleNetworkTest() throws IOException{
1048 execution.setVariable("testProcessKey", "testProcessKeyValue");
1049 Service service = new Service();
1050 List<NetworkResourceCustomization> networkCustomizations = new ArrayList<>();
1051 NetworkResourceCustomization networkCust = new NetworkResourceCustomization();
1052 networkCust.setModelCustomizationUUID("123");
1053 networkCustomizations.add(networkCust);
1054 service.setNetworkCustomizations(networkCustomizations);
1055 NetworkCollectionResourceCustomization collectionResourceCustomization = new NetworkCollectionResourceCustomization();
1056 collectionResourceCustomization.setModelCustomizationUUID("123");
1057 CollectionResource collectionResource = new CollectionResource();
1058 collectionResource.setToscaNodeType("NetworkCollection");
1059 InstanceGroup instanceGroup = new InstanceGroup();
1060 List<CollectionResourceInstanceGroupCustomization> collectionInstanceGroupCustomizations = new ArrayList<>();
1061 CollectionResourceInstanceGroupCustomization collectionInstanceGroupCustomization = new CollectionResourceInstanceGroupCustomization();
1062 collectionInstanceGroupCustomization.setSubInterfaceNetworkQuantity(3);
1063 collectionInstanceGroupCustomizations.add(collectionInstanceGroupCustomization);
1064 instanceGroup.setCollectionInstanceGroupCustomizations(collectionInstanceGroupCustomizations);
1065 collectionResource.setInstanceGroup(instanceGroup);
1066 collectionResourceCustomization.setCollectionResource(collectionResource);;
1067 service.setModelUUID("abc");
1068 service.getCollectionResourceCustomizations().add(collectionResourceCustomization);
1069 service.getCollectionResourceCustomizations().add(collectionResourceCustomization);
1070 doReturn(service).when(catalogDbClient).getServiceByID("3c40d244-808e-42ca-b09a-256d83d19d0a");
1071 doReturn(collectionResourceCustomization).when(catalogDbClient).getNetworkCollectionResourceCustomizationByID("123");
1072 String bpmnRequest = new String(Files.readAllBytes(Paths.get("src/test/resources/__files/Macro/ServiceMacroActivateDeleteUnassign.json")));
1073 ObjectMapper mapper = new ObjectMapper();
1074 ServiceInstancesRequest sIRequest = mapper.readValue(bpmnRequest, ServiceInstancesRequest.class);
1075 List<Resource> resourceCounter = new ArrayList<>();
1076 thrown.expect(BpmnError.class);
1077 workflowAction.traverseCatalogDbService(execution, sIRequest, resourceCounter);
1081 public void sortVfModulesByBaseFirstTest(){
1082 List<Resource> resources = new ArrayList<>();
1083 Resource resource1 = new Resource(WorkflowType.VFMODULE,"111",false);
1084 resource1.setBaseVfModule(false);
1085 resources.add(resource1);
1086 Resource resource2 = new Resource(WorkflowType.VFMODULE,"222",false);
1087 resource2.setBaseVfModule(false);
1088 resources.add(resource2);
1089 Resource resource3 = new Resource(WorkflowType.VFMODULE,"333",false);
1090 resource3.setBaseVfModule(true);
1091 resources.add(resource3);
1092 List<Resource> result = workflowAction.sortVfModulesByBaseFirst(resources);
1093 assertEquals("333",result.get(0).getResourceId());
1094 assertEquals("222",result.get(1).getResourceId());
1095 assertEquals("111",result.get(2).getResourceId());
1098 private List<OrchestrationFlow> createFlowList (String... flowNames){
1099 List<OrchestrationFlow> result = new ArrayList<>();
1100 for(String flowName : flowNames){
1101 OrchestrationFlow orchFlow = new OrchestrationFlow();
1102 orchFlow.setFlowName(flowName);
1103 result.add(orchFlow);
1108 private void assertEqualsBulkFlowName (List<ExecuteBuildingBlock> ebbs, String... flowNames){
1109 for(int i = 0; i<ebbs.size(); i++){
1110 assertEquals(ebbs.get(i).getBuildingBlock().getBpmnFlowName(),flowNames[i]);