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