Springboot 2.0 upgrade
[so.git] / bpmn / so-bpmn-tasks / src / test / java / org / onap / so / bpmn / infrastructure / workflow / tasks / OrchestrationStatusValidatorTest.java
1 /*-
2  * ============LICENSE_START=======================================================
3  * ONAP - SO
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
10  * 
11  *      http://www.apache.org/licenses/LICENSE-2.0
12  * 
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=========================================================
19  */
20
21 package org.onap.so.bpmn.infrastructure.workflow.tasks;
22
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
30 import java.util.ArrayList;
31 import java.util.HashMap;
32 import java.util.List;
33
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;
54
55 @Ignore
56 public class OrchestrationStatusValidatorTest extends BaseTaskTest {
57         @InjectMocks
58         protected OrchestrationStatusValidator orchestrationStatusValidator = new OrchestrationStatusValidator();
59         
60
61         
62         @Test
63         public void test_validateOrchestrationStatus() throws Exception {
64                 String flowToBeCalled = "AssignServiceInstanceBB";
65                 setServiceInstance().setOrchestrationStatus(OrchestrationStatus.PRECREATED);
66                 
67                 execution.setVariable("flowToBeCalled", flowToBeCalled);
68                 
69                 BuildingBlockDetail buildingBlockDetail = new BuildingBlockDetail();
70                 buildingBlockDetail.setBuildingBlockName("AssignServiceInstanceBB");
71                 buildingBlockDetail.setId(1);
72                 buildingBlockDetail.setResourceType(ResourceType.SERVICE);
73                 buildingBlockDetail.setTargetAction(OrchestrationAction.ASSIGN);
74                 
75                 doReturn(buildingBlockDetail).when(catalogDbClient).getBuildingBlockDetail(flowToBeCalled);
76                 
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);
83                 
84                 doReturn(orchestrationStatusStateTransitionDirective).when(catalogDbClient).getOrchestrationStatusStateTransitionDirective(ResourceType.SERVICE, OrchestrationStatus.PRECREATED, OrchestrationAction.ASSIGN);
85                 
86                 orchestrationStatusValidator.validateOrchestrationStatus(execution);
87                 
88                 assertEquals(OrchestrationStatusValidationDirective.CONTINUE, execution.getVariable("orchestrationStatusValidationResult"));
89         }
90         
91         @Test
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();
98                 
99                 si.setOrchestrationStatus(OrchestrationStatus.PRECREATED);
100                 config.setConfigurationId("configurationId");
101                 config.setOrchestrationStatus(OrchestrationStatus.PRECREATED);
102                 configurations.add(config);
103                 si.setConfigurations(configurations);
104                 
105                 execution.setVariable("flowToBeCalled", flowToBeCalled);
106                 
107                 BuildingBlockDetail buildingBlockDetail = new BuildingBlockDetail();
108                 buildingBlockDetail.setBuildingBlockName("UnassignFabricConfigurationBB");
109                 buildingBlockDetail.setId(1);
110                 buildingBlockDetail.setResourceType(ResourceType.CONFIGURATION);
111                 buildingBlockDetail.setTargetAction(OrchestrationAction.UNASSIGN);
112                 
113                 doReturn(buildingBlockDetail).when(catalogDbClient).getBuildingBlockDetail(flowToBeCalled);
114                 
115                 OrchestrationStatusStateTransitionDirective orchestrationStatusStateTransitionDirective = new OrchestrationStatusStateTransitionDirective();
116                 orchestrationStatusStateTransitionDirective.setFlowDirective(OrchestrationStatusValidationDirective.SILENT_SUCCESS);
117                 orchestrationStatusStateTransitionDirective.setId(1);
118                 orchestrationStatusStateTransitionDirective.setOrchestrationStatus(OrchestrationStatus.PRECREATED);
119                 orchestrationStatusStateTransitionDirective.setResourceType(ResourceType.CONFIGURATION);
120                 orchestrationStatusStateTransitionDirective.setTargetAction(OrchestrationAction.UNASSIGN);
121                 
122                 doReturn(orchestrationStatusStateTransitionDirective).when(catalogDbClient).getOrchestrationStatusStateTransitionDirective(ResourceType.CONFIGURATION, OrchestrationStatus.PRECREATED, OrchestrationAction.UNASSIGN);
123                 
124                 orchestrationStatusValidator.validateOrchestrationStatus(execution);
125                 
126                 assertEquals(OrchestrationStatusValidationDirective.SILENT_SUCCESS, execution.getVariable("orchestrationStatusValidationResult"));
127         }
128         
129         @Test
130         public void test_validateOrchestrationStatus_buildingBlockDetailNotFound() throws Exception {
131                 expectedException.expect(BpmnError.class);
132                 
133                 String flowToBeCalled = "AssignServiceInstanceBB";
134                 
135                 execution.setVariable("flowToBeCalled", flowToBeCalled);
136                 
137                 doReturn(null).when(catalogDbClient).getBuildingBlockDetail(flowToBeCalled);
138                 
139                 orchestrationStatusValidator.validateOrchestrationStatus(execution);
140         }
141         
142         @Test
143         public void test_validateOrchestrationStatus_orchestrationValidationFail() throws Exception {
144                 expectedException.expect(BpmnError.class);
145                 
146                 String flowToBeCalled = "AssignServiceInstanceBB";
147                 
148                 execution.setVariable("flowToBeCalled", flowToBeCalled);
149                 
150                 BuildingBlockDetail buildingBlockDetail = new BuildingBlockDetail();
151                 buildingBlockDetail.setBuildingBlockName("AssignServiceInstanceBB");
152                 buildingBlockDetail.setId(1);
153                 buildingBlockDetail.setResourceType(ResourceType.SERVICE);
154                 buildingBlockDetail.setTargetAction(OrchestrationAction.ASSIGN);
155                 
156                 doReturn(buildingBlockDetail).when(catalogDbClient).getBuildingBlockDetail(flowToBeCalled);
157                 
158                 OrchestrationStatusStateTransitionDirective orchestrationStatusStateTransitionDirective = new OrchestrationStatusStateTransitionDirective();
159                 orchestrationStatusStateTransitionDirective.setFlowDirective(OrchestrationStatusValidationDirective.FAIL);
160                 orchestrationStatusStateTransitionDirective.setId(1);
161                 orchestrationStatusStateTransitionDirective.setOrchestrationStatus(OrchestrationStatus.PRECREATED);
162                 orchestrationStatusStateTransitionDirective.setResourceType(ResourceType.SERVICE);
163                 orchestrationStatusStateTransitionDirective.setTargetAction(OrchestrationAction.ASSIGN);
164                 
165                 doReturn(orchestrationStatusStateTransitionDirective).when(catalogDbClient).getOrchestrationStatusStateTransitionDirective(ResourceType.SERVICE, OrchestrationStatus.PRECREATED, OrchestrationAction.ASSIGN);
166                 
167                 orchestrationStatusValidator.validateOrchestrationStatus(execution);
168         }
169         
170         @Test
171         public void test_validateOrchestrationStatus_orchestrationValidationNotFound() throws Exception {
172                 expectedException.expect(BpmnError.class);
173                 
174                 String flowToBeCalled = "AssignServiceInstanceBB";
175                 
176                 execution.setVariable("flowToBeCalled", flowToBeCalled);
177                 
178                 BuildingBlockDetail buildingBlockDetail = new BuildingBlockDetail();
179                 buildingBlockDetail.setBuildingBlockName("AssignServiceInstanceBB");
180                 buildingBlockDetail.setId(1);
181                 buildingBlockDetail.setResourceType(ResourceType.SERVICE);
182                 buildingBlockDetail.setTargetAction(OrchestrationAction.ASSIGN);
183                 
184                 doReturn(buildingBlockDetail).when(catalogDbClient).getBuildingBlockDetail(flowToBeCalled);
185                 
186                 OrchestrationStatusStateTransitionDirective orchestrationStatusStateTransitionDirective = new OrchestrationStatusStateTransitionDirective();
187                 orchestrationStatusStateTransitionDirective.setFlowDirective(OrchestrationStatusValidationDirective.FAIL);
188                 orchestrationStatusStateTransitionDirective.setId(1);
189                 orchestrationStatusStateTransitionDirective.setOrchestrationStatus(OrchestrationStatus.PRECREATED);
190                 orchestrationStatusStateTransitionDirective.setResourceType(ResourceType.SERVICE);
191                 orchestrationStatusStateTransitionDirective.setTargetAction(OrchestrationAction.ASSIGN);
192                 
193                 doReturn(orchestrationStatusStateTransitionDirective).when(catalogDbClient).getOrchestrationStatusStateTransitionDirective(ResourceType.NETWORK, OrchestrationStatus.PRECREATED, OrchestrationAction.ASSIGN);
194                 
195                 orchestrationStatusValidator.validateOrchestrationStatus(execution);
196         }
197         
198         @Test
199         public void test_validateOrchestrationStatus_unassignNotFound() throws Exception{
200                 String flowToBeCalled = "UnassignServiceInstanceBB";
201                 
202                 execution.setVariable("flowToBeCalled", flowToBeCalled);
203                 
204                 BuildingBlockDetail buildingBlockDetail = new BuildingBlockDetail();
205                 buildingBlockDetail.setBuildingBlockName("UnassignServiceInstanceBB");
206                 buildingBlockDetail.setId(1);
207                 buildingBlockDetail.setResourceType(ResourceType.SERVICE);
208                 buildingBlockDetail.setTargetAction(OrchestrationAction.UNASSIGN);
209                 
210                 doReturn(buildingBlockDetail).when(catalogDbClient).getBuildingBlockDetail(flowToBeCalled);
211                 
212                 lookupKeyMap = new HashMap<ResourceKey, String>();
213                 
214                 orchestrationStatusValidator.validateOrchestrationStatus(execution);
215                 
216                 assertEquals(OrchestrationStatusValidationDirective.SILENT_SUCCESS,execution.getVariable("orchestrationStatusValidationResult"));
217         }
218         
219         @Test
220         public void test_validateOrchestrationStatusSecondStageOfMultiStageEnabledVfModule() throws Exception {
221                 String flowToBeCalled = "CreateVfModuleBB";
222                                 
223                 execution.setVariable("orchestrationStatusValidationResult", OrchestrationStatusValidationDirective.SILENT_SUCCESS);
224                 
225                 execution.setVariable("flowToBeCalled", flowToBeCalled);
226                 
227                 GenericVnf genericVnf = buildGenericVnf();
228                 ModelInfoGenericVnf modelInfoGenericVnf = genericVnf.getModelInfoGenericVnf();
229                 modelInfoGenericVnf.setMultiStageDesign("true");
230                 setGenericVnf().setModelInfoGenericVnf(modelInfoGenericVnf);
231                 setVfModule().setOrchestrationStatus(OrchestrationStatus.PENDING_ACTIVATION);
232                 
233                 BuildingBlockDetail buildingBlockDetail = new BuildingBlockDetail();
234                 buildingBlockDetail.setBuildingBlockName("CreateVfModuleBB");
235                 buildingBlockDetail.setId(1);
236                 buildingBlockDetail.setResourceType(ResourceType.VF_MODULE);
237                 buildingBlockDetail.setTargetAction(OrchestrationAction.CREATE);
238                 
239                 doReturn(buildingBlockDetail).when(catalogDbClient).getBuildingBlockDetail(flowToBeCalled);
240                 
241                 OrchestrationStatusStateTransitionDirective orchestrationStatusStateTransitionDirective = new OrchestrationStatusStateTransitionDirective();
242                 orchestrationStatusStateTransitionDirective.setFlowDirective(OrchestrationStatusValidationDirective.FAIL);
243                 orchestrationStatusStateTransitionDirective.setId(1);
244                 orchestrationStatusStateTransitionDirective.setOrchestrationStatus(OrchestrationStatus.PENDING_ACTIVATION);
245                 orchestrationStatusStateTransitionDirective.setResourceType(ResourceType.VF_MODULE);
246                 orchestrationStatusStateTransitionDirective.setTargetAction(OrchestrationAction.CREATE);
247                 
248                 doReturn(orchestrationStatusStateTransitionDirective).when(catalogDbClient).getOrchestrationStatusStateTransitionDirective(ResourceType.VF_MODULE, OrchestrationStatus.PENDING_ACTIVATION, OrchestrationAction.CREATE);
249                 
250                 orchestrationStatusValidator.validateOrchestrationStatus(execution);
251                 
252                 assertEquals(OrchestrationStatusValidationDirective.CONTINUE, execution.getVariable("orchestrationStatusValidationResult"));
253         }
254         
255
256         @Test
257         public void test_validateOrchestrationStatusSecondStageOfMultiStageWrongPrevStatusVfModule() throws Exception {
258                 String flowToBeCalled = "CreateVfModuleBB";
259                 
260                 execution.setVariable("orchestrationStatusValidationResult", OrchestrationStatusValidationDirective.CONTINUE);
261                 
262                 execution.setVariable("flowToBeCalled", flowToBeCalled);
263                 
264                 GenericVnf genericVnf = buildGenericVnf();
265                 ModelInfoGenericVnf modelInfoGenericVnf = genericVnf.getModelInfoGenericVnf();
266                 modelInfoGenericVnf.setMultiStageDesign("true");
267                 setGenericVnf().setModelInfoGenericVnf(modelInfoGenericVnf);
268                 setVfModule().setOrchestrationStatus(OrchestrationStatus.PENDING_ACTIVATION);
269                 
270                 BuildingBlockDetail buildingBlockDetail = new BuildingBlockDetail();
271                 buildingBlockDetail.setBuildingBlockName("CreateVfModuleBB");
272                 buildingBlockDetail.setId(1);
273                 buildingBlockDetail.setResourceType(ResourceType.VF_MODULE);
274                 buildingBlockDetail.setTargetAction(OrchestrationAction.CREATE);
275                 
276                 doReturn(buildingBlockDetail).when(catalogDbClient).getBuildingBlockDetail(flowToBeCalled);
277                 
278                 OrchestrationStatusStateTransitionDirective orchestrationStatusStateTransitionDirective = new OrchestrationStatusStateTransitionDirective();
279                 orchestrationStatusStateTransitionDirective.setFlowDirective(OrchestrationStatusValidationDirective.SILENT_SUCCESS);
280                 orchestrationStatusStateTransitionDirective.setId(1);
281                 orchestrationStatusStateTransitionDirective.setOrchestrationStatus(OrchestrationStatus.PENDING_ACTIVATION);
282                 orchestrationStatusStateTransitionDirective.setResourceType(ResourceType.VF_MODULE);
283                 orchestrationStatusStateTransitionDirective.setTargetAction(OrchestrationAction.CREATE);
284                 
285                 doReturn(orchestrationStatusStateTransitionDirective).when(catalogDbClient).getOrchestrationStatusStateTransitionDirective(ResourceType.VF_MODULE, OrchestrationStatus.PENDING_ACTIVATION, OrchestrationAction.CREATE);
286                 
287                 orchestrationStatusValidator.validateOrchestrationStatus(execution);
288                 
289                 assertEquals(OrchestrationStatusValidationDirective.SILENT_SUCCESS, execution.getVariable("orchestrationStatusValidationResult"));
290         }
291         
292         @Test
293         public void test_validateOrchestrationStatusSecondStageOfMultiStageDisabledVfModule() throws Exception {
294                 String flowToBeCalled = "CreateVfModuleBB";             
295                 
296                 execution.setVariable("orchestrationStatusValidationResult", OrchestrationStatusValidationDirective.SILENT_SUCCESS);
297                 
298                 execution.setVariable("flowToBeCalled", flowToBeCalled);
299                 
300                 GenericVnf genericVnf = buildGenericVnf();
301                 ModelInfoGenericVnf modelInfoGenericVnf = genericVnf.getModelInfoGenericVnf();
302                 modelInfoGenericVnf.setMultiStageDesign("false");
303                 setGenericVnf().setModelInfoGenericVnf(modelInfoGenericVnf);
304                 setVfModule().setOrchestrationStatus(OrchestrationStatus.PENDING_ACTIVATION);
305                 
306                 BuildingBlockDetail buildingBlockDetail = new BuildingBlockDetail();
307                 buildingBlockDetail.setBuildingBlockName("CreateVfModuleBB");
308                 buildingBlockDetail.setId(1);
309                 buildingBlockDetail.setResourceType(ResourceType.VF_MODULE);
310                 buildingBlockDetail.setTargetAction(OrchestrationAction.CREATE);
311                 
312                 doReturn(buildingBlockDetail).when(catalogDbClient).getBuildingBlockDetail(flowToBeCalled);
313                 
314                 OrchestrationStatusStateTransitionDirective orchestrationStatusStateTransitionDirective = new OrchestrationStatusStateTransitionDirective();
315                 orchestrationStatusStateTransitionDirective.setFlowDirective(OrchestrationStatusValidationDirective.SILENT_SUCCESS);
316                 orchestrationStatusStateTransitionDirective.setId(1);
317                 orchestrationStatusStateTransitionDirective.setOrchestrationStatus(OrchestrationStatus.PENDING_ACTIVATION);
318                 orchestrationStatusStateTransitionDirective.setResourceType(ResourceType.VF_MODULE);
319                 orchestrationStatusStateTransitionDirective.setTargetAction(OrchestrationAction.CREATE);
320                 
321                 doReturn(orchestrationStatusStateTransitionDirective).when(catalogDbClient).getOrchestrationStatusStateTransitionDirective(ResourceType.VF_MODULE, OrchestrationStatus.PENDING_ACTIVATION, OrchestrationAction.CREATE);
322                 
323                 orchestrationStatusValidator.validateOrchestrationStatus(execution);
324                 
325                 assertEquals(OrchestrationStatusValidationDirective.SILENT_SUCCESS, execution.getVariable("orchestrationStatusValidationResult"));
326         }
327         
328         @Test
329         public void test_validateOrchestrationStatusSecondStageOfMultiStageWrongOrchStatusVfModule() throws Exception {
330                 String flowToBeCalled = "CreateVfModuleBB";
331                                 
332                 execution.setVariable("orchestrationStatusValidationResult", OrchestrationStatusValidationDirective.SILENT_SUCCESS);
333                 
334                 execution.setVariable("flowToBeCalled", flowToBeCalled);
335                 
336                 GenericVnf genericVnf = buildGenericVnf();
337                 ModelInfoGenericVnf modelInfoGenericVnf = genericVnf.getModelInfoGenericVnf();
338                 modelInfoGenericVnf.setMultiStageDesign("true");
339                 setGenericVnf().setModelInfoGenericVnf(modelInfoGenericVnf);
340                 setVfModule().setOrchestrationStatus(OrchestrationStatus.ASSIGNED);
341                 
342                 BuildingBlockDetail buildingBlockDetail = new BuildingBlockDetail();
343                 buildingBlockDetail.setBuildingBlockName("CreateVfModuleBB");
344                 buildingBlockDetail.setId(1);
345                 buildingBlockDetail.setResourceType(ResourceType.VF_MODULE);
346                 buildingBlockDetail.setTargetAction(OrchestrationAction.CREATE);
347                 
348                 doReturn(buildingBlockDetail).when(catalogDbClient).getBuildingBlockDetail(flowToBeCalled);
349                 
350                 OrchestrationStatusStateTransitionDirective orchestrationStatusStateTransitionDirective = new OrchestrationStatusStateTransitionDirective();
351                 orchestrationStatusStateTransitionDirective.setFlowDirective(OrchestrationStatusValidationDirective.SILENT_SUCCESS);
352                 orchestrationStatusStateTransitionDirective.setId(1);
353                 orchestrationStatusStateTransitionDirective.setOrchestrationStatus(OrchestrationStatus.PENDING_ACTIVATION);
354                 orchestrationStatusStateTransitionDirective.setResourceType(ResourceType.VF_MODULE);
355                 orchestrationStatusStateTransitionDirective.setTargetAction(OrchestrationAction.CREATE);
356                 
357                 doReturn(orchestrationStatusStateTransitionDirective).when(catalogDbClient).getOrchestrationStatusStateTransitionDirective(ResourceType.VF_MODULE, OrchestrationStatus.ASSIGNED, OrchestrationAction.CREATE);
358                 
359                 orchestrationStatusValidator.validateOrchestrationStatus(execution);
360                 
361                 assertEquals(OrchestrationStatusValidationDirective.SILENT_SUCCESS, execution.getVariable("orchestrationStatusValidationResult"));
362         }
363         
364         @Test
365         public void test_validateOrchestrationStatusSecondStageOfMultiStageWrongTargetActionVfModule() throws Exception {
366                 String flowToBeCalled = "CreateVfModuleBB";
367                                 
368                 execution.setVariable("orchestrationStatusValidationResult", OrchestrationStatusValidationDirective.SILENT_SUCCESS);
369                 
370                 execution.setVariable("flowToBeCalled", flowToBeCalled);
371                 
372                 GenericVnf genericVnf = buildGenericVnf();
373                 ModelInfoGenericVnf modelInfoGenericVnf = genericVnf.getModelInfoGenericVnf();
374                 modelInfoGenericVnf.setMultiStageDesign("true");
375                 setGenericVnf().setModelInfoGenericVnf(modelInfoGenericVnf);
376                 setVfModule().setOrchestrationStatus(OrchestrationStatus.PENDING_ACTIVATION);
377                 
378                 BuildingBlockDetail buildingBlockDetail = new BuildingBlockDetail();
379                 buildingBlockDetail.setBuildingBlockName("CreateVfModuleBB");
380                 buildingBlockDetail.setId(1);
381                 buildingBlockDetail.setResourceType(ResourceType.VF_MODULE);
382                 buildingBlockDetail.setTargetAction(OrchestrationAction.ACTIVATE);
383                 
384                 doReturn(buildingBlockDetail).when(catalogDbClient).getBuildingBlockDetail(flowToBeCalled);
385                 
386                 OrchestrationStatusStateTransitionDirective orchestrationStatusStateTransitionDirective = new OrchestrationStatusStateTransitionDirective();
387                 orchestrationStatusStateTransitionDirective.setFlowDirective(OrchestrationStatusValidationDirective.SILENT_SUCCESS);
388                 orchestrationStatusStateTransitionDirective.setId(1);
389                 orchestrationStatusStateTransitionDirective.setOrchestrationStatus(OrchestrationStatus.PENDING_ACTIVATION);
390                 orchestrationStatusStateTransitionDirective.setResourceType(ResourceType.VF_MODULE);
391                 orchestrationStatusStateTransitionDirective.setTargetAction(OrchestrationAction.ACTIVATE);
392                 
393                 doReturn(orchestrationStatusStateTransitionDirective).when(catalogDbClient).getOrchestrationStatusStateTransitionDirective(ResourceType.VF_MODULE, OrchestrationStatus.PENDING_ACTIVATION, OrchestrationAction.ACTIVATE);
394                 
395                 orchestrationStatusValidator.validateOrchestrationStatus(execution);
396                 
397                 assertEquals(OrchestrationStatusValidationDirective.SILENT_SUCCESS, execution.getVariable("orchestrationStatusValidationResult"));
398         }
399 }