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.junit.Assert.assertEquals;
24 import static org.mockito.ArgumentMatchers.any;
25 import static org.mockito.ArgumentMatchers.eq;
26 import static org.mockito.Mockito.doReturn;
27 import static org.mockito.Mockito.doThrow;
28 import static org.mockito.Mockito.when;
30 import java.util.ArrayList;
31 import java.util.HashMap;
32 import java.util.List;
34 import org.camunda.bpm.engine.delegate.BpmnError;
35 import org.junit.Before;
36 import org.junit.Ignore;
37 import org.junit.Test;
38 import org.mockito.ArgumentMatchers;
39 import org.mockito.InjectMocks;
40 import org.onap.so.bpmn.BaseTaskTest;
41 import org.onap.so.bpmn.common.BuildingBlockExecution;
42 import org.onap.so.bpmn.servicedecomposition.bbobjects.Configuration;
43 import org.onap.so.bpmn.servicedecomposition.bbobjects.GenericVnf;
44 import org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance;
45 import org.onap.so.bpmn.servicedecomposition.entities.ResourceKey;
46 import org.onap.so.bpmn.servicedecomposition.modelinfo.ModelInfoGenericVnf;
47 import org.onap.so.db.catalog.beans.BuildingBlockDetail;
48 import org.onap.so.db.catalog.beans.OrchestrationAction;
49 import org.onap.so.db.catalog.beans.OrchestrationStatus;
50 import org.onap.so.db.catalog.beans.OrchestrationStatusStateTransitionDirective;
51 import org.onap.so.db.catalog.beans.OrchestrationStatusValidationDirective;
52 import org.onap.so.db.catalog.beans.ResourceType;
53 import org.springframework.beans.factory.annotation.Autowired;
56 public class OrchestrationStatusValidatorTest extends BaseTaskTest {
58 protected OrchestrationStatusValidator orchestrationStatusValidator = new OrchestrationStatusValidator();
63 public void test_validateOrchestrationStatus() throws Exception {
64 String flowToBeCalled = "AssignServiceInstanceBB";
65 setServiceInstance().setOrchestrationStatus(OrchestrationStatus.PRECREATED);
66 execution.setVariable("aLaCarte", true);
67 execution.setVariable("flowToBeCalled", flowToBeCalled);
69 BuildingBlockDetail buildingBlockDetail = new BuildingBlockDetail();
70 buildingBlockDetail.setBuildingBlockName("AssignServiceInstanceBB");
71 buildingBlockDetail.setId(1);
72 buildingBlockDetail.setResourceType(ResourceType.SERVICE);
73 buildingBlockDetail.setTargetAction(OrchestrationAction.ASSIGN);
75 doReturn(buildingBlockDetail).when(catalogDbClient).getBuildingBlockDetail(flowToBeCalled);
77 OrchestrationStatusStateTransitionDirective orchestrationStatusStateTransitionDirective = new OrchestrationStatusStateTransitionDirective();
78 orchestrationStatusStateTransitionDirective.setFlowDirective(OrchestrationStatusValidationDirective.CONTINUE);
79 orchestrationStatusStateTransitionDirective.setId(1);
80 orchestrationStatusStateTransitionDirective.setOrchestrationStatus(OrchestrationStatus.PRECREATED);
81 orchestrationStatusStateTransitionDirective.setResourceType(ResourceType.SERVICE);
82 orchestrationStatusStateTransitionDirective.setTargetAction(OrchestrationAction.ASSIGN);
84 doReturn(orchestrationStatusStateTransitionDirective).when(catalogDbClient).getOrchestrationStatusStateTransitionDirective(ResourceType.SERVICE, OrchestrationStatus.PRECREATED, OrchestrationAction.ASSIGN);
86 orchestrationStatusValidator.validateOrchestrationStatus(execution);
88 assertEquals(OrchestrationStatusValidationDirective.CONTINUE, execution.getVariable("orchestrationStatusValidationResult"));
92 public void test_validateOrchestrationStatusConfiguration() throws Exception {
93 lookupKeyMap.put(ResourceKey.CONFIGURATION_ID, "configurationId");
94 String flowToBeCalled = "UnassignFabricConfigurationBB";
95 ServiceInstance si = setServiceInstance();
96 List<Configuration> configurations = new ArrayList<>();
97 Configuration config = new Configuration();
99 si.setOrchestrationStatus(OrchestrationStatus.PRECREATED);
100 config.setConfigurationId("configurationId");
101 config.setOrchestrationStatus(OrchestrationStatus.PRECREATED);
102 configurations.add(config);
103 si.setConfigurations(configurations);
105 execution.setVariable("flowToBeCalled", flowToBeCalled);
106 execution.setVariable("aLaCarte", true);
108 BuildingBlockDetail buildingBlockDetail = new BuildingBlockDetail();
109 buildingBlockDetail.setBuildingBlockName("UnassignFabricConfigurationBB");
110 buildingBlockDetail.setId(1);
111 buildingBlockDetail.setResourceType(ResourceType.CONFIGURATION);
112 buildingBlockDetail.setTargetAction(OrchestrationAction.UNASSIGN);
114 doReturn(buildingBlockDetail).when(catalogDbClient).getBuildingBlockDetail(flowToBeCalled);
116 OrchestrationStatusStateTransitionDirective orchestrationStatusStateTransitionDirective = new OrchestrationStatusStateTransitionDirective();
117 orchestrationStatusStateTransitionDirective.setFlowDirective(OrchestrationStatusValidationDirective.SILENT_SUCCESS);
118 orchestrationStatusStateTransitionDirective.setId(1);
119 orchestrationStatusStateTransitionDirective.setOrchestrationStatus(OrchestrationStatus.PRECREATED);
120 orchestrationStatusStateTransitionDirective.setResourceType(ResourceType.CONFIGURATION);
121 orchestrationStatusStateTransitionDirective.setTargetAction(OrchestrationAction.UNASSIGN);
123 doReturn(orchestrationStatusStateTransitionDirective).when(catalogDbClient).getOrchestrationStatusStateTransitionDirective(ResourceType.CONFIGURATION, OrchestrationStatus.PRECREATED, OrchestrationAction.UNASSIGN);
125 orchestrationStatusValidator.validateOrchestrationStatus(execution);
127 assertEquals(OrchestrationStatusValidationDirective.SILENT_SUCCESS, execution.getVariable("orchestrationStatusValidationResult"));
131 public void test_validateOrchestrationStatus_buildingBlockDetailNotFound() throws Exception {
132 expectedException.expect(BpmnError.class);
134 String flowToBeCalled = "AssignServiceInstanceBB";
136 execution.setVariable("flowToBeCalled", flowToBeCalled);
138 doReturn(null).when(catalogDbClient).getBuildingBlockDetail(flowToBeCalled);
140 orchestrationStatusValidator.validateOrchestrationStatus(execution);
144 public void test_validateOrchestrationStatus_orchestrationValidationFail() throws Exception {
145 expectedException.expect(BpmnError.class);
147 String flowToBeCalled = "AssignServiceInstanceBB";
149 execution.setVariable("flowToBeCalled", flowToBeCalled);
151 BuildingBlockDetail buildingBlockDetail = new BuildingBlockDetail();
152 buildingBlockDetail.setBuildingBlockName("AssignServiceInstanceBB");
153 buildingBlockDetail.setId(1);
154 buildingBlockDetail.setResourceType(ResourceType.SERVICE);
155 buildingBlockDetail.setTargetAction(OrchestrationAction.ASSIGN);
157 doReturn(buildingBlockDetail).when(catalogDbClient).getBuildingBlockDetail(flowToBeCalled);
159 OrchestrationStatusStateTransitionDirective orchestrationStatusStateTransitionDirective = new OrchestrationStatusStateTransitionDirective();
160 orchestrationStatusStateTransitionDirective.setFlowDirective(OrchestrationStatusValidationDirective.FAIL);
161 orchestrationStatusStateTransitionDirective.setId(1);
162 orchestrationStatusStateTransitionDirective.setOrchestrationStatus(OrchestrationStatus.PRECREATED);
163 orchestrationStatusStateTransitionDirective.setResourceType(ResourceType.SERVICE);
164 orchestrationStatusStateTransitionDirective.setTargetAction(OrchestrationAction.ASSIGN);
166 doReturn(orchestrationStatusStateTransitionDirective).when(catalogDbClient).getOrchestrationStatusStateTransitionDirective(ResourceType.SERVICE, OrchestrationStatus.PRECREATED, OrchestrationAction.ASSIGN);
168 orchestrationStatusValidator.validateOrchestrationStatus(execution);
172 public void test_validateOrchestrationStatus_orchestrationValidationNotFound() throws Exception {
173 expectedException.expect(BpmnError.class);
175 String flowToBeCalled = "AssignServiceInstanceBB";
177 execution.setVariable("flowToBeCalled", flowToBeCalled);
179 BuildingBlockDetail buildingBlockDetail = new BuildingBlockDetail();
180 buildingBlockDetail.setBuildingBlockName("AssignServiceInstanceBB");
181 buildingBlockDetail.setId(1);
182 buildingBlockDetail.setResourceType(ResourceType.SERVICE);
183 buildingBlockDetail.setTargetAction(OrchestrationAction.ASSIGN);
185 doReturn(buildingBlockDetail).when(catalogDbClient).getBuildingBlockDetail(flowToBeCalled);
187 OrchestrationStatusStateTransitionDirective orchestrationStatusStateTransitionDirective = new OrchestrationStatusStateTransitionDirective();
188 orchestrationStatusStateTransitionDirective.setFlowDirective(OrchestrationStatusValidationDirective.FAIL);
189 orchestrationStatusStateTransitionDirective.setId(1);
190 orchestrationStatusStateTransitionDirective.setOrchestrationStatus(OrchestrationStatus.PRECREATED);
191 orchestrationStatusStateTransitionDirective.setResourceType(ResourceType.SERVICE);
192 orchestrationStatusStateTransitionDirective.setTargetAction(OrchestrationAction.ASSIGN);
194 doReturn(orchestrationStatusStateTransitionDirective).when(catalogDbClient).getOrchestrationStatusStateTransitionDirective(ResourceType.NETWORK, OrchestrationStatus.PRECREATED, OrchestrationAction.ASSIGN);
196 orchestrationStatusValidator.validateOrchestrationStatus(execution);
200 public void test_validateOrchestrationStatus_unassignNotFound() throws Exception{
201 String flowToBeCalled = "UnassignServiceInstanceBB";
203 execution.setVariable("flowToBeCalled", flowToBeCalled);
204 execution.setVariable("aLaCarte", true);
206 BuildingBlockDetail buildingBlockDetail = new BuildingBlockDetail();
207 buildingBlockDetail.setBuildingBlockName("UnassignServiceInstanceBB");
208 buildingBlockDetail.setId(1);
209 buildingBlockDetail.setResourceType(ResourceType.SERVICE);
210 buildingBlockDetail.setTargetAction(OrchestrationAction.UNASSIGN);
212 doReturn(buildingBlockDetail).when(catalogDbClient).getBuildingBlockDetail(flowToBeCalled);
214 lookupKeyMap = new HashMap<ResourceKey, String>();
216 orchestrationStatusValidator.validateOrchestrationStatus(execution);
218 assertEquals(OrchestrationStatusValidationDirective.SILENT_SUCCESS,execution.getVariable("orchestrationStatusValidationResult"));
222 public void test_validateOrchestrationStatusSecondStageOfMultiStageEnabledVfModule() throws Exception {
223 String flowToBeCalled = "CreateVfModuleBB";
225 execution.setVariable("orchestrationStatusValidationResult", OrchestrationStatusValidationDirective.SILENT_SUCCESS);
226 execution.setVariable("aLaCarte", true);
227 execution.setVariable("flowToBeCalled", flowToBeCalled);
229 GenericVnf genericVnf = buildGenericVnf();
230 ModelInfoGenericVnf modelInfoGenericVnf = genericVnf.getModelInfoGenericVnf();
231 modelInfoGenericVnf.setMultiStageDesign("true");
232 setGenericVnf().setModelInfoGenericVnf(modelInfoGenericVnf);
233 setVfModule().setOrchestrationStatus(OrchestrationStatus.PENDING_ACTIVATION);
235 BuildingBlockDetail buildingBlockDetail = new BuildingBlockDetail();
236 buildingBlockDetail.setBuildingBlockName("CreateVfModuleBB");
237 buildingBlockDetail.setId(1);
238 buildingBlockDetail.setResourceType(ResourceType.VF_MODULE);
239 buildingBlockDetail.setTargetAction(OrchestrationAction.CREATE);
241 doReturn(buildingBlockDetail).when(catalogDbClient).getBuildingBlockDetail(flowToBeCalled);
243 OrchestrationStatusStateTransitionDirective orchestrationStatusStateTransitionDirective = new OrchestrationStatusStateTransitionDirective();
244 orchestrationStatusStateTransitionDirective.setFlowDirective(OrchestrationStatusValidationDirective.FAIL);
245 orchestrationStatusStateTransitionDirective.setId(1);
246 orchestrationStatusStateTransitionDirective.setOrchestrationStatus(OrchestrationStatus.PENDING_ACTIVATION);
247 orchestrationStatusStateTransitionDirective.setResourceType(ResourceType.VF_MODULE);
248 orchestrationStatusStateTransitionDirective.setTargetAction(OrchestrationAction.CREATE);
250 doReturn(orchestrationStatusStateTransitionDirective).when(catalogDbClient).getOrchestrationStatusStateTransitionDirective(ResourceType.VF_MODULE, OrchestrationStatus.PENDING_ACTIVATION, OrchestrationAction.CREATE);
252 orchestrationStatusValidator.validateOrchestrationStatus(execution);
254 assertEquals(OrchestrationStatusValidationDirective.CONTINUE, execution.getVariable("orchestrationStatusValidationResult"));
259 public void test_validateOrchestrationStatusSecondStageOfMultiStageWrongPrevStatusVfModule() throws Exception {
260 String flowToBeCalled = "CreateVfModuleBB";
262 execution.setVariable("orchestrationStatusValidationResult", OrchestrationStatusValidationDirective.CONTINUE);
263 execution.setVariable("aLaCarte", true);
264 execution.setVariable("flowToBeCalled", flowToBeCalled);
266 GenericVnf genericVnf = buildGenericVnf();
267 ModelInfoGenericVnf modelInfoGenericVnf = genericVnf.getModelInfoGenericVnf();
268 modelInfoGenericVnf.setMultiStageDesign("true");
269 setGenericVnf().setModelInfoGenericVnf(modelInfoGenericVnf);
270 setVfModule().setOrchestrationStatus(OrchestrationStatus.PENDING_ACTIVATION);
272 BuildingBlockDetail buildingBlockDetail = new BuildingBlockDetail();
273 buildingBlockDetail.setBuildingBlockName("CreateVfModuleBB");
274 buildingBlockDetail.setId(1);
275 buildingBlockDetail.setResourceType(ResourceType.VF_MODULE);
276 buildingBlockDetail.setTargetAction(OrchestrationAction.CREATE);
278 doReturn(buildingBlockDetail).when(catalogDbClient).getBuildingBlockDetail(flowToBeCalled);
280 OrchestrationStatusStateTransitionDirective orchestrationStatusStateTransitionDirective = new OrchestrationStatusStateTransitionDirective();
281 orchestrationStatusStateTransitionDirective.setFlowDirective(OrchestrationStatusValidationDirective.SILENT_SUCCESS);
282 orchestrationStatusStateTransitionDirective.setId(1);
283 orchestrationStatusStateTransitionDirective.setOrchestrationStatus(OrchestrationStatus.PENDING_ACTIVATION);
284 orchestrationStatusStateTransitionDirective.setResourceType(ResourceType.VF_MODULE);
285 orchestrationStatusStateTransitionDirective.setTargetAction(OrchestrationAction.CREATE);
287 doReturn(orchestrationStatusStateTransitionDirective).when(catalogDbClient).getOrchestrationStatusStateTransitionDirective(ResourceType.VF_MODULE, OrchestrationStatus.PENDING_ACTIVATION, OrchestrationAction.CREATE);
289 orchestrationStatusValidator.validateOrchestrationStatus(execution);
291 assertEquals(OrchestrationStatusValidationDirective.SILENT_SUCCESS, execution.getVariable("orchestrationStatusValidationResult"));
295 public void test_validateOrchestrationStatusSecondStageOfMultiStageDisabledVfModule() throws Exception {
296 String flowToBeCalled = "CreateVfModuleBB";
298 execution.setVariable("orchestrationStatusValidationResult", OrchestrationStatusValidationDirective.SILENT_SUCCESS);
299 execution.setVariable("aLaCarte", true);
300 execution.setVariable("flowToBeCalled", flowToBeCalled);
302 GenericVnf genericVnf = buildGenericVnf();
303 ModelInfoGenericVnf modelInfoGenericVnf = genericVnf.getModelInfoGenericVnf();
304 modelInfoGenericVnf.setMultiStageDesign("false");
305 setGenericVnf().setModelInfoGenericVnf(modelInfoGenericVnf);
306 setVfModule().setOrchestrationStatus(OrchestrationStatus.PENDING_ACTIVATION);
308 BuildingBlockDetail buildingBlockDetail = new BuildingBlockDetail();
309 buildingBlockDetail.setBuildingBlockName("CreateVfModuleBB");
310 buildingBlockDetail.setId(1);
311 buildingBlockDetail.setResourceType(ResourceType.VF_MODULE);
312 buildingBlockDetail.setTargetAction(OrchestrationAction.CREATE);
314 doReturn(buildingBlockDetail).when(catalogDbClient).getBuildingBlockDetail(flowToBeCalled);
316 OrchestrationStatusStateTransitionDirective orchestrationStatusStateTransitionDirective = new OrchestrationStatusStateTransitionDirective();
317 orchestrationStatusStateTransitionDirective.setFlowDirective(OrchestrationStatusValidationDirective.SILENT_SUCCESS);
318 orchestrationStatusStateTransitionDirective.setId(1);
319 orchestrationStatusStateTransitionDirective.setOrchestrationStatus(OrchestrationStatus.PENDING_ACTIVATION);
320 orchestrationStatusStateTransitionDirective.setResourceType(ResourceType.VF_MODULE);
321 orchestrationStatusStateTransitionDirective.setTargetAction(OrchestrationAction.CREATE);
323 doReturn(orchestrationStatusStateTransitionDirective).when(catalogDbClient).getOrchestrationStatusStateTransitionDirective(ResourceType.VF_MODULE, OrchestrationStatus.PENDING_ACTIVATION, OrchestrationAction.CREATE);
325 orchestrationStatusValidator.validateOrchestrationStatus(execution);
327 assertEquals(OrchestrationStatusValidationDirective.SILENT_SUCCESS, execution.getVariable("orchestrationStatusValidationResult"));
331 public void test_validateOrchestrationStatusSecondStageOfMultiStageWrongOrchStatusVfModule() throws Exception {
332 String flowToBeCalled = "CreateVfModuleBB";
334 execution.setVariable("orchestrationStatusValidationResult", OrchestrationStatusValidationDirective.SILENT_SUCCESS);
335 execution.setVariable("aLaCarte", true);
336 execution.setVariable("flowToBeCalled", flowToBeCalled);
338 GenericVnf genericVnf = buildGenericVnf();
339 ModelInfoGenericVnf modelInfoGenericVnf = genericVnf.getModelInfoGenericVnf();
340 modelInfoGenericVnf.setMultiStageDesign("true");
341 setGenericVnf().setModelInfoGenericVnf(modelInfoGenericVnf);
342 setVfModule().setOrchestrationStatus(OrchestrationStatus.ASSIGNED);
344 BuildingBlockDetail buildingBlockDetail = new BuildingBlockDetail();
345 buildingBlockDetail.setBuildingBlockName("CreateVfModuleBB");
346 buildingBlockDetail.setId(1);
347 buildingBlockDetail.setResourceType(ResourceType.VF_MODULE);
348 buildingBlockDetail.setTargetAction(OrchestrationAction.CREATE);
350 doReturn(buildingBlockDetail).when(catalogDbClient).getBuildingBlockDetail(flowToBeCalled);
352 OrchestrationStatusStateTransitionDirective orchestrationStatusStateTransitionDirective = new OrchestrationStatusStateTransitionDirective();
353 orchestrationStatusStateTransitionDirective.setFlowDirective(OrchestrationStatusValidationDirective.SILENT_SUCCESS);
354 orchestrationStatusStateTransitionDirective.setId(1);
355 orchestrationStatusStateTransitionDirective.setOrchestrationStatus(OrchestrationStatus.PENDING_ACTIVATION);
356 orchestrationStatusStateTransitionDirective.setResourceType(ResourceType.VF_MODULE);
357 orchestrationStatusStateTransitionDirective.setTargetAction(OrchestrationAction.CREATE);
359 doReturn(orchestrationStatusStateTransitionDirective).when(catalogDbClient).getOrchestrationStatusStateTransitionDirective(ResourceType.VF_MODULE, OrchestrationStatus.ASSIGNED, OrchestrationAction.CREATE);
361 orchestrationStatusValidator.validateOrchestrationStatus(execution);
363 assertEquals(OrchestrationStatusValidationDirective.SILENT_SUCCESS, execution.getVariable("orchestrationStatusValidationResult"));
367 public void test_validateOrchestrationStatusSecondStageOfMultiStageWrongTargetActionVfModule() throws Exception {
368 String flowToBeCalled = "CreateVfModuleBB";
370 execution.setVariable("orchestrationStatusValidationResult", OrchestrationStatusValidationDirective.SILENT_SUCCESS);
371 execution.setVariable("aLaCarte", true);
372 execution.setVariable("flowToBeCalled", flowToBeCalled);
374 GenericVnf genericVnf = buildGenericVnf();
375 ModelInfoGenericVnf modelInfoGenericVnf = genericVnf.getModelInfoGenericVnf();
376 modelInfoGenericVnf.setMultiStageDesign("true");
377 setGenericVnf().setModelInfoGenericVnf(modelInfoGenericVnf);
378 setVfModule().setOrchestrationStatus(OrchestrationStatus.PENDING_ACTIVATION);
380 BuildingBlockDetail buildingBlockDetail = new BuildingBlockDetail();
381 buildingBlockDetail.setBuildingBlockName("CreateVfModuleBB");
382 buildingBlockDetail.setId(1);
383 buildingBlockDetail.setResourceType(ResourceType.VF_MODULE);
384 buildingBlockDetail.setTargetAction(OrchestrationAction.ACTIVATE);
386 doReturn(buildingBlockDetail).when(catalogDbClient).getBuildingBlockDetail(flowToBeCalled);
388 OrchestrationStatusStateTransitionDirective orchestrationStatusStateTransitionDirective = new OrchestrationStatusStateTransitionDirective();
389 orchestrationStatusStateTransitionDirective.setFlowDirective(OrchestrationStatusValidationDirective.SILENT_SUCCESS);
390 orchestrationStatusStateTransitionDirective.setId(1);
391 orchestrationStatusStateTransitionDirective.setOrchestrationStatus(OrchestrationStatus.PENDING_ACTIVATION);
392 orchestrationStatusStateTransitionDirective.setResourceType(ResourceType.VF_MODULE);
393 orchestrationStatusStateTransitionDirective.setTargetAction(OrchestrationAction.ACTIVATE);
395 doReturn(orchestrationStatusStateTransitionDirective).when(catalogDbClient).getOrchestrationStatusStateTransitionDirective(ResourceType.VF_MODULE, OrchestrationStatus.PENDING_ACTIVATION, OrchestrationAction.ACTIVATE);
397 orchestrationStatusValidator.validateOrchestrationStatus(execution);
399 assertEquals(OrchestrationStatusValidationDirective.SILENT_SUCCESS, execution.getVariable("orchestrationStatusValidationResult"));
403 public void test_validateOrchestrationStatusSecondStageOfMultiStageWrongAlacarteValueVfModule() throws Exception {
404 String flowToBeCalled = "CreateVfModuleBB";
406 execution.setVariable("orchestrationStatusValidationResult", OrchestrationStatusValidationDirective.SILENT_SUCCESS);
407 execution.setVariable("aLaCarte", false);
408 execution.setVariable("flowToBeCalled", flowToBeCalled);
410 GenericVnf genericVnf = buildGenericVnf();
411 ModelInfoGenericVnf modelInfoGenericVnf = genericVnf.getModelInfoGenericVnf();
412 modelInfoGenericVnf.setMultiStageDesign("true");
413 setGenericVnf().setModelInfoGenericVnf(modelInfoGenericVnf);
414 setVfModule().setOrchestrationStatus(OrchestrationStatus.PENDING_ACTIVATION);
416 BuildingBlockDetail buildingBlockDetail = new BuildingBlockDetail();
417 buildingBlockDetail.setBuildingBlockName("CreateVfModuleBB");
418 buildingBlockDetail.setId(1);
419 buildingBlockDetail.setResourceType(ResourceType.VF_MODULE);
420 buildingBlockDetail.setTargetAction(OrchestrationAction.CREATE);
422 doReturn(buildingBlockDetail).when(catalogDbClient).getBuildingBlockDetail(flowToBeCalled);
424 OrchestrationStatusStateTransitionDirective orchestrationStatusStateTransitionDirective = new OrchestrationStatusStateTransitionDirective();
425 orchestrationStatusStateTransitionDirective.setFlowDirective(OrchestrationStatusValidationDirective.SILENT_SUCCESS);
426 orchestrationStatusStateTransitionDirective.setId(1);
427 orchestrationStatusStateTransitionDirective.setOrchestrationStatus(OrchestrationStatus.PENDING_ACTIVATION);
428 orchestrationStatusStateTransitionDirective.setResourceType(ResourceType.VF_MODULE);
429 orchestrationStatusStateTransitionDirective.setTargetAction(OrchestrationAction.ACTIVATE);
431 doReturn(orchestrationStatusStateTransitionDirective).when(catalogDbClient).getOrchestrationStatusStateTransitionDirective(ResourceType.VF_MODULE, OrchestrationStatus.PENDING_ACTIVATION, OrchestrationAction.CREATE);
433 orchestrationStatusValidator.validateOrchestrationStatus(execution);
435 assertEquals(OrchestrationStatusValidationDirective.SILENT_SUCCESS, execution.getVariable("orchestrationStatusValidationResult"));