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;
29 import java.util.ArrayList;
30 import java.util.HashMap;
31 import java.util.List;
32 import org.camunda.bpm.engine.delegate.BpmnError;
33 import org.junit.Before;
34 import org.junit.Ignore;
35 import org.junit.Test;
36 import org.mockito.ArgumentMatchers;
37 import org.mockito.InjectMocks;
38 import org.onap.so.bpmn.BaseTaskTest;
39 import org.onap.so.bpmn.common.BuildingBlockExecution;
40 import org.onap.so.bpmn.servicedecomposition.bbobjects.Configuration;
41 import org.onap.so.bpmn.servicedecomposition.bbobjects.GenericVnf;
42 import org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance;
43 import org.onap.so.bpmn.servicedecomposition.entities.ResourceKey;
44 import org.onap.so.bpmn.servicedecomposition.modelinfo.ModelInfoGenericVnf;
45 import org.onap.so.db.catalog.beans.BuildingBlockDetail;
46 import org.onap.so.db.catalog.beans.OrchestrationAction;
47 import org.onap.so.db.catalog.beans.OrchestrationStatus;
48 import org.onap.so.db.catalog.beans.OrchestrationStatusStateTransitionDirective;
49 import org.onap.so.db.catalog.beans.OrchestrationStatusValidationDirective;
50 import org.onap.so.db.catalog.beans.ResourceType;
51 import org.springframework.beans.factory.annotation.Autowired;
54 public class OrchestrationStatusValidatorTest extends BaseTaskTest {
56 protected OrchestrationStatusValidator orchestrationStatusValidator = new OrchestrationStatusValidator();
61 public void test_validateOrchestrationStatus() throws Exception {
62 String flowToBeCalled = "AssignServiceInstanceBB";
63 setServiceInstance().setOrchestrationStatus(OrchestrationStatus.PRECREATED);
64 execution.setVariable("aLaCarte", true);
65 execution.setVariable("flowToBeCalled", flowToBeCalled);
67 BuildingBlockDetail buildingBlockDetail = new BuildingBlockDetail();
68 buildingBlockDetail.setBuildingBlockName("AssignServiceInstanceBB");
69 buildingBlockDetail.setId(1);
70 buildingBlockDetail.setResourceType(ResourceType.SERVICE);
71 buildingBlockDetail.setTargetAction(OrchestrationAction.ASSIGN);
73 doReturn(buildingBlockDetail).when(catalogDbClient).getBuildingBlockDetail(flowToBeCalled);
75 OrchestrationStatusStateTransitionDirective orchestrationStatusStateTransitionDirective =
76 new OrchestrationStatusStateTransitionDirective();
77 orchestrationStatusStateTransitionDirective.setFlowDirective(OrchestrationStatusValidationDirective.CONTINUE);
78 orchestrationStatusStateTransitionDirective.setId(1);
79 orchestrationStatusStateTransitionDirective.setOrchestrationStatus(OrchestrationStatus.PRECREATED);
80 orchestrationStatusStateTransitionDirective.setResourceType(ResourceType.SERVICE);
81 orchestrationStatusStateTransitionDirective.setTargetAction(OrchestrationAction.ASSIGN);
83 doReturn(orchestrationStatusStateTransitionDirective).when(catalogDbClient)
84 .getOrchestrationStatusStateTransitionDirective(ResourceType.SERVICE, OrchestrationStatus.PRECREATED,
85 OrchestrationAction.ASSIGN);
87 orchestrationStatusValidator.validateOrchestrationStatus(execution);
89 assertEquals(OrchestrationStatusValidationDirective.CONTINUE,
90 execution.getVariable("orchestrationStatusValidationResult"));
94 public void test_validateOrchestrationStatusConfiguration() throws Exception {
95 lookupKeyMap.put(ResourceKey.CONFIGURATION_ID, "configurationId");
96 String flowToBeCalled = "UnassignFabricConfigurationBB";
97 ServiceInstance si = setServiceInstance();
98 List<Configuration> configurations = new ArrayList<>();
99 Configuration config = new Configuration();
101 si.setOrchestrationStatus(OrchestrationStatus.PRECREATED);
102 config.setConfigurationId("configurationId");
103 config.setOrchestrationStatus(OrchestrationStatus.PRECREATED);
104 configurations.add(config);
105 si.setConfigurations(configurations);
107 execution.setVariable("flowToBeCalled", flowToBeCalled);
108 execution.setVariable("aLaCarte", true);
110 BuildingBlockDetail buildingBlockDetail = new BuildingBlockDetail();
111 buildingBlockDetail.setBuildingBlockName("UnassignFabricConfigurationBB");
112 buildingBlockDetail.setId(1);
113 buildingBlockDetail.setResourceType(ResourceType.CONFIGURATION);
114 buildingBlockDetail.setTargetAction(OrchestrationAction.UNASSIGN);
116 doReturn(buildingBlockDetail).when(catalogDbClient).getBuildingBlockDetail(flowToBeCalled);
118 OrchestrationStatusStateTransitionDirective orchestrationStatusStateTransitionDirective =
119 new OrchestrationStatusStateTransitionDirective();
120 orchestrationStatusStateTransitionDirective
121 .setFlowDirective(OrchestrationStatusValidationDirective.SILENT_SUCCESS);
122 orchestrationStatusStateTransitionDirective.setId(1);
123 orchestrationStatusStateTransitionDirective.setOrchestrationStatus(OrchestrationStatus.PRECREATED);
124 orchestrationStatusStateTransitionDirective.setResourceType(ResourceType.CONFIGURATION);
125 orchestrationStatusStateTransitionDirective.setTargetAction(OrchestrationAction.UNASSIGN);
127 doReturn(orchestrationStatusStateTransitionDirective).when(catalogDbClient)
128 .getOrchestrationStatusStateTransitionDirective(ResourceType.CONFIGURATION,
129 OrchestrationStatus.PRECREATED, OrchestrationAction.UNASSIGN);
131 orchestrationStatusValidator.validateOrchestrationStatus(execution);
133 assertEquals(OrchestrationStatusValidationDirective.SILENT_SUCCESS,
134 execution.getVariable("orchestrationStatusValidationResult"));
138 public void test_validateOrchestrationStatus_buildingBlockDetailNotFound() throws Exception {
139 expectedException.expect(BpmnError.class);
141 String flowToBeCalled = "AssignServiceInstanceBB";
143 execution.setVariable("flowToBeCalled", flowToBeCalled);
145 doReturn(null).when(catalogDbClient).getBuildingBlockDetail(flowToBeCalled);
147 orchestrationStatusValidator.validateOrchestrationStatus(execution);
151 public void test_validateOrchestrationStatus_orchestrationValidationFail() throws Exception {
152 expectedException.expect(BpmnError.class);
154 String flowToBeCalled = "AssignServiceInstanceBB";
156 execution.setVariable("flowToBeCalled", flowToBeCalled);
158 BuildingBlockDetail buildingBlockDetail = new BuildingBlockDetail();
159 buildingBlockDetail.setBuildingBlockName("AssignServiceInstanceBB");
160 buildingBlockDetail.setId(1);
161 buildingBlockDetail.setResourceType(ResourceType.SERVICE);
162 buildingBlockDetail.setTargetAction(OrchestrationAction.ASSIGN);
164 doReturn(buildingBlockDetail).when(catalogDbClient).getBuildingBlockDetail(flowToBeCalled);
166 OrchestrationStatusStateTransitionDirective orchestrationStatusStateTransitionDirective =
167 new OrchestrationStatusStateTransitionDirective();
168 orchestrationStatusStateTransitionDirective.setFlowDirective(OrchestrationStatusValidationDirective.FAIL);
169 orchestrationStatusStateTransitionDirective.setId(1);
170 orchestrationStatusStateTransitionDirective.setOrchestrationStatus(OrchestrationStatus.PRECREATED);
171 orchestrationStatusStateTransitionDirective.setResourceType(ResourceType.SERVICE);
172 orchestrationStatusStateTransitionDirective.setTargetAction(OrchestrationAction.ASSIGN);
174 doReturn(orchestrationStatusStateTransitionDirective).when(catalogDbClient)
175 .getOrchestrationStatusStateTransitionDirective(ResourceType.SERVICE, OrchestrationStatus.PRECREATED,
176 OrchestrationAction.ASSIGN);
178 orchestrationStatusValidator.validateOrchestrationStatus(execution);
182 public void test_validateOrchestrationStatus_orchestrationValidationNotFound() throws Exception {
183 expectedException.expect(BpmnError.class);
185 String flowToBeCalled = "AssignServiceInstanceBB";
187 execution.setVariable("flowToBeCalled", flowToBeCalled);
189 BuildingBlockDetail buildingBlockDetail = new BuildingBlockDetail();
190 buildingBlockDetail.setBuildingBlockName("AssignServiceInstanceBB");
191 buildingBlockDetail.setId(1);
192 buildingBlockDetail.setResourceType(ResourceType.SERVICE);
193 buildingBlockDetail.setTargetAction(OrchestrationAction.ASSIGN);
195 doReturn(buildingBlockDetail).when(catalogDbClient).getBuildingBlockDetail(flowToBeCalled);
197 OrchestrationStatusStateTransitionDirective orchestrationStatusStateTransitionDirective =
198 new OrchestrationStatusStateTransitionDirective();
199 orchestrationStatusStateTransitionDirective.setFlowDirective(OrchestrationStatusValidationDirective.FAIL);
200 orchestrationStatusStateTransitionDirective.setId(1);
201 orchestrationStatusStateTransitionDirective.setOrchestrationStatus(OrchestrationStatus.PRECREATED);
202 orchestrationStatusStateTransitionDirective.setResourceType(ResourceType.SERVICE);
203 orchestrationStatusStateTransitionDirective.setTargetAction(OrchestrationAction.ASSIGN);
205 doReturn(orchestrationStatusStateTransitionDirective).when(catalogDbClient)
206 .getOrchestrationStatusStateTransitionDirective(ResourceType.NETWORK, OrchestrationStatus.PRECREATED,
207 OrchestrationAction.ASSIGN);
209 orchestrationStatusValidator.validateOrchestrationStatus(execution);
213 public void test_validateOrchestrationStatus_unassignNotFound() throws Exception {
214 String flowToBeCalled = "UnassignServiceInstanceBB";
216 execution.setVariable("flowToBeCalled", flowToBeCalled);
217 execution.setVariable("aLaCarte", true);
219 BuildingBlockDetail buildingBlockDetail = new BuildingBlockDetail();
220 buildingBlockDetail.setBuildingBlockName("UnassignServiceInstanceBB");
221 buildingBlockDetail.setId(1);
222 buildingBlockDetail.setResourceType(ResourceType.SERVICE);
223 buildingBlockDetail.setTargetAction(OrchestrationAction.UNASSIGN);
225 doReturn(buildingBlockDetail).when(catalogDbClient).getBuildingBlockDetail(flowToBeCalled);
227 lookupKeyMap = new HashMap<ResourceKey, String>();
229 orchestrationStatusValidator.validateOrchestrationStatus(execution);
231 assertEquals(OrchestrationStatusValidationDirective.SILENT_SUCCESS,
232 execution.getVariable("orchestrationStatusValidationResult"));
236 public void test_validateOrchestrationStatusSecondStageOfMultiStageEnabledVfModule() throws Exception {
237 String flowToBeCalled = "CreateVfModuleBB";
239 execution.setVariable("orchestrationStatusValidationResult",
240 OrchestrationStatusValidationDirective.SILENT_SUCCESS);
241 execution.setVariable("aLaCarte", true);
242 execution.setVariable("flowToBeCalled", flowToBeCalled);
244 GenericVnf genericVnf = buildGenericVnf();
245 ModelInfoGenericVnf modelInfoGenericVnf = genericVnf.getModelInfoGenericVnf();
246 modelInfoGenericVnf.setMultiStageDesign("true");
247 setGenericVnf().setModelInfoGenericVnf(modelInfoGenericVnf);
248 setVfModule().setOrchestrationStatus(OrchestrationStatus.PENDING_ACTIVATION);
250 BuildingBlockDetail buildingBlockDetail = new BuildingBlockDetail();
251 buildingBlockDetail.setBuildingBlockName("CreateVfModuleBB");
252 buildingBlockDetail.setId(1);
253 buildingBlockDetail.setResourceType(ResourceType.VF_MODULE);
254 buildingBlockDetail.setTargetAction(OrchestrationAction.CREATE);
256 doReturn(buildingBlockDetail).when(catalogDbClient).getBuildingBlockDetail(flowToBeCalled);
258 OrchestrationStatusStateTransitionDirective orchestrationStatusStateTransitionDirective =
259 new OrchestrationStatusStateTransitionDirective();
260 orchestrationStatusStateTransitionDirective.setFlowDirective(OrchestrationStatusValidationDirective.FAIL);
261 orchestrationStatusStateTransitionDirective.setId(1);
262 orchestrationStatusStateTransitionDirective.setOrchestrationStatus(OrchestrationStatus.PENDING_ACTIVATION);
263 orchestrationStatusStateTransitionDirective.setResourceType(ResourceType.VF_MODULE);
264 orchestrationStatusStateTransitionDirective.setTargetAction(OrchestrationAction.CREATE);
266 doReturn(orchestrationStatusStateTransitionDirective).when(catalogDbClient)
267 .getOrchestrationStatusStateTransitionDirective(ResourceType.VF_MODULE,
268 OrchestrationStatus.PENDING_ACTIVATION, OrchestrationAction.CREATE);
270 orchestrationStatusValidator.validateOrchestrationStatus(execution);
272 assertEquals(OrchestrationStatusValidationDirective.CONTINUE,
273 execution.getVariable("orchestrationStatusValidationResult"));
278 public void test_validateOrchestrationStatusSecondStageOfMultiStageWrongPrevStatusVfModule() throws Exception {
279 String flowToBeCalled = "CreateVfModuleBB";
281 execution.setVariable("orchestrationStatusValidationResult", OrchestrationStatusValidationDirective.CONTINUE);
282 execution.setVariable("aLaCarte", true);
283 execution.setVariable("flowToBeCalled", flowToBeCalled);
285 GenericVnf genericVnf = buildGenericVnf();
286 ModelInfoGenericVnf modelInfoGenericVnf = genericVnf.getModelInfoGenericVnf();
287 modelInfoGenericVnf.setMultiStageDesign("true");
288 setGenericVnf().setModelInfoGenericVnf(modelInfoGenericVnf);
289 setVfModule().setOrchestrationStatus(OrchestrationStatus.PENDING_ACTIVATION);
291 BuildingBlockDetail buildingBlockDetail = new BuildingBlockDetail();
292 buildingBlockDetail.setBuildingBlockName("CreateVfModuleBB");
293 buildingBlockDetail.setId(1);
294 buildingBlockDetail.setResourceType(ResourceType.VF_MODULE);
295 buildingBlockDetail.setTargetAction(OrchestrationAction.CREATE);
297 doReturn(buildingBlockDetail).when(catalogDbClient).getBuildingBlockDetail(flowToBeCalled);
299 OrchestrationStatusStateTransitionDirective orchestrationStatusStateTransitionDirective =
300 new OrchestrationStatusStateTransitionDirective();
301 orchestrationStatusStateTransitionDirective
302 .setFlowDirective(OrchestrationStatusValidationDirective.SILENT_SUCCESS);
303 orchestrationStatusStateTransitionDirective.setId(1);
304 orchestrationStatusStateTransitionDirective.setOrchestrationStatus(OrchestrationStatus.PENDING_ACTIVATION);
305 orchestrationStatusStateTransitionDirective.setResourceType(ResourceType.VF_MODULE);
306 orchestrationStatusStateTransitionDirective.setTargetAction(OrchestrationAction.CREATE);
308 doReturn(orchestrationStatusStateTransitionDirective).when(catalogDbClient)
309 .getOrchestrationStatusStateTransitionDirective(ResourceType.VF_MODULE,
310 OrchestrationStatus.PENDING_ACTIVATION, OrchestrationAction.CREATE);
312 orchestrationStatusValidator.validateOrchestrationStatus(execution);
314 assertEquals(OrchestrationStatusValidationDirective.SILENT_SUCCESS,
315 execution.getVariable("orchestrationStatusValidationResult"));
319 public void test_validateOrchestrationStatusSecondStageOfMultiStageDisabledVfModule() throws Exception {
320 String flowToBeCalled = "CreateVfModuleBB";
322 execution.setVariable("orchestrationStatusValidationResult",
323 OrchestrationStatusValidationDirective.SILENT_SUCCESS);
324 execution.setVariable("aLaCarte", true);
325 execution.setVariable("flowToBeCalled", flowToBeCalled);
327 GenericVnf genericVnf = buildGenericVnf();
328 ModelInfoGenericVnf modelInfoGenericVnf = genericVnf.getModelInfoGenericVnf();
329 modelInfoGenericVnf.setMultiStageDesign("false");
330 setGenericVnf().setModelInfoGenericVnf(modelInfoGenericVnf);
331 setVfModule().setOrchestrationStatus(OrchestrationStatus.PENDING_ACTIVATION);
333 BuildingBlockDetail buildingBlockDetail = new BuildingBlockDetail();
334 buildingBlockDetail.setBuildingBlockName("CreateVfModuleBB");
335 buildingBlockDetail.setId(1);
336 buildingBlockDetail.setResourceType(ResourceType.VF_MODULE);
337 buildingBlockDetail.setTargetAction(OrchestrationAction.CREATE);
339 doReturn(buildingBlockDetail).when(catalogDbClient).getBuildingBlockDetail(flowToBeCalled);
341 OrchestrationStatusStateTransitionDirective orchestrationStatusStateTransitionDirective =
342 new OrchestrationStatusStateTransitionDirective();
343 orchestrationStatusStateTransitionDirective
344 .setFlowDirective(OrchestrationStatusValidationDirective.SILENT_SUCCESS);
345 orchestrationStatusStateTransitionDirective.setId(1);
346 orchestrationStatusStateTransitionDirective.setOrchestrationStatus(OrchestrationStatus.PENDING_ACTIVATION);
347 orchestrationStatusStateTransitionDirective.setResourceType(ResourceType.VF_MODULE);
348 orchestrationStatusStateTransitionDirective.setTargetAction(OrchestrationAction.CREATE);
350 doReturn(orchestrationStatusStateTransitionDirective).when(catalogDbClient)
351 .getOrchestrationStatusStateTransitionDirective(ResourceType.VF_MODULE,
352 OrchestrationStatus.PENDING_ACTIVATION, OrchestrationAction.CREATE);
354 orchestrationStatusValidator.validateOrchestrationStatus(execution);
356 assertEquals(OrchestrationStatusValidationDirective.SILENT_SUCCESS,
357 execution.getVariable("orchestrationStatusValidationResult"));
361 public void test_validateOrchestrationStatusSecondStageOfMultiStageWrongOrchStatusVfModule() throws Exception {
362 String flowToBeCalled = "CreateVfModuleBB";
364 execution.setVariable("orchestrationStatusValidationResult",
365 OrchestrationStatusValidationDirective.SILENT_SUCCESS);
366 execution.setVariable("aLaCarte", true);
367 execution.setVariable("flowToBeCalled", flowToBeCalled);
369 GenericVnf genericVnf = buildGenericVnf();
370 ModelInfoGenericVnf modelInfoGenericVnf = genericVnf.getModelInfoGenericVnf();
371 modelInfoGenericVnf.setMultiStageDesign("true");
372 setGenericVnf().setModelInfoGenericVnf(modelInfoGenericVnf);
373 setVfModule().setOrchestrationStatus(OrchestrationStatus.ASSIGNED);
375 BuildingBlockDetail buildingBlockDetail = new BuildingBlockDetail();
376 buildingBlockDetail.setBuildingBlockName("CreateVfModuleBB");
377 buildingBlockDetail.setId(1);
378 buildingBlockDetail.setResourceType(ResourceType.VF_MODULE);
379 buildingBlockDetail.setTargetAction(OrchestrationAction.CREATE);
381 doReturn(buildingBlockDetail).when(catalogDbClient).getBuildingBlockDetail(flowToBeCalled);
383 OrchestrationStatusStateTransitionDirective orchestrationStatusStateTransitionDirective =
384 new OrchestrationStatusStateTransitionDirective();
385 orchestrationStatusStateTransitionDirective
386 .setFlowDirective(OrchestrationStatusValidationDirective.SILENT_SUCCESS);
387 orchestrationStatusStateTransitionDirective.setId(1);
388 orchestrationStatusStateTransitionDirective.setOrchestrationStatus(OrchestrationStatus.PENDING_ACTIVATION);
389 orchestrationStatusStateTransitionDirective.setResourceType(ResourceType.VF_MODULE);
390 orchestrationStatusStateTransitionDirective.setTargetAction(OrchestrationAction.CREATE);
392 doReturn(orchestrationStatusStateTransitionDirective).when(catalogDbClient)
393 .getOrchestrationStatusStateTransitionDirective(ResourceType.VF_MODULE, OrchestrationStatus.ASSIGNED,
394 OrchestrationAction.CREATE);
396 orchestrationStatusValidator.validateOrchestrationStatus(execution);
398 assertEquals(OrchestrationStatusValidationDirective.SILENT_SUCCESS,
399 execution.getVariable("orchestrationStatusValidationResult"));
403 public void test_validateOrchestrationStatusSecondStageOfMultiStageWrongTargetActionVfModule() throws Exception {
404 String flowToBeCalled = "CreateVfModuleBB";
406 execution.setVariable("orchestrationStatusValidationResult",
407 OrchestrationStatusValidationDirective.SILENT_SUCCESS);
408 execution.setVariable("aLaCarte", true);
409 execution.setVariable("flowToBeCalled", flowToBeCalled);
411 GenericVnf genericVnf = buildGenericVnf();
412 ModelInfoGenericVnf modelInfoGenericVnf = genericVnf.getModelInfoGenericVnf();
413 modelInfoGenericVnf.setMultiStageDesign("true");
414 setGenericVnf().setModelInfoGenericVnf(modelInfoGenericVnf);
415 setVfModule().setOrchestrationStatus(OrchestrationStatus.PENDING_ACTIVATION);
417 BuildingBlockDetail buildingBlockDetail = new BuildingBlockDetail();
418 buildingBlockDetail.setBuildingBlockName("CreateVfModuleBB");
419 buildingBlockDetail.setId(1);
420 buildingBlockDetail.setResourceType(ResourceType.VF_MODULE);
421 buildingBlockDetail.setTargetAction(OrchestrationAction.ACTIVATE);
423 doReturn(buildingBlockDetail).when(catalogDbClient).getBuildingBlockDetail(flowToBeCalled);
425 OrchestrationStatusStateTransitionDirective orchestrationStatusStateTransitionDirective =
426 new OrchestrationStatusStateTransitionDirective();
427 orchestrationStatusStateTransitionDirective
428 .setFlowDirective(OrchestrationStatusValidationDirective.SILENT_SUCCESS);
429 orchestrationStatusStateTransitionDirective.setId(1);
430 orchestrationStatusStateTransitionDirective.setOrchestrationStatus(OrchestrationStatus.PENDING_ACTIVATION);
431 orchestrationStatusStateTransitionDirective.setResourceType(ResourceType.VF_MODULE);
432 orchestrationStatusStateTransitionDirective.setTargetAction(OrchestrationAction.ACTIVATE);
434 doReturn(orchestrationStatusStateTransitionDirective).when(catalogDbClient)
435 .getOrchestrationStatusStateTransitionDirective(ResourceType.VF_MODULE,
436 OrchestrationStatus.PENDING_ACTIVATION, OrchestrationAction.ACTIVATE);
438 orchestrationStatusValidator.validateOrchestrationStatus(execution);
440 assertEquals(OrchestrationStatusValidationDirective.SILENT_SUCCESS,
441 execution.getVariable("orchestrationStatusValidationResult"));
445 public void test_validateOrchestrationStatusSecondStageOfMultiStageWrongAlacarteValueVfModule() throws Exception {
446 String flowToBeCalled = "CreateVfModuleBB";
448 execution.setVariable("orchestrationStatusValidationResult",
449 OrchestrationStatusValidationDirective.SILENT_SUCCESS);
450 execution.setVariable("aLaCarte", false);
451 execution.setVariable("flowToBeCalled", flowToBeCalled);
453 GenericVnf genericVnf = buildGenericVnf();
454 ModelInfoGenericVnf modelInfoGenericVnf = genericVnf.getModelInfoGenericVnf();
455 modelInfoGenericVnf.setMultiStageDesign("true");
456 setGenericVnf().setModelInfoGenericVnf(modelInfoGenericVnf);
457 setVfModule().setOrchestrationStatus(OrchestrationStatus.PENDING_ACTIVATION);
459 BuildingBlockDetail buildingBlockDetail = new BuildingBlockDetail();
460 buildingBlockDetail.setBuildingBlockName("CreateVfModuleBB");
461 buildingBlockDetail.setId(1);
462 buildingBlockDetail.setResourceType(ResourceType.VF_MODULE);
463 buildingBlockDetail.setTargetAction(OrchestrationAction.CREATE);
465 doReturn(buildingBlockDetail).when(catalogDbClient).getBuildingBlockDetail(flowToBeCalled);
467 OrchestrationStatusStateTransitionDirective orchestrationStatusStateTransitionDirective =
468 new OrchestrationStatusStateTransitionDirective();
469 orchestrationStatusStateTransitionDirective
470 .setFlowDirective(OrchestrationStatusValidationDirective.SILENT_SUCCESS);
471 orchestrationStatusStateTransitionDirective.setId(1);
472 orchestrationStatusStateTransitionDirective.setOrchestrationStatus(OrchestrationStatus.PENDING_ACTIVATION);
473 orchestrationStatusStateTransitionDirective.setResourceType(ResourceType.VF_MODULE);
474 orchestrationStatusStateTransitionDirective.setTargetAction(OrchestrationAction.ACTIVATE);
476 doReturn(orchestrationStatusStateTransitionDirective).when(catalogDbClient)
477 .getOrchestrationStatusStateTransitionDirective(ResourceType.VF_MODULE,
478 OrchestrationStatus.PENDING_ACTIVATION, OrchestrationAction.CREATE);
480 orchestrationStatusValidator.validateOrchestrationStatus(execution);
482 assertEquals(OrchestrationStatusValidationDirective.SILENT_SUCCESS,
483 execution.getVariable("orchestrationStatusValidationResult"));