-
Notifications
You must be signed in to change notification settings - Fork 5
Unit Tests
Andre edited this page Oct 21, 2022
·
29 revisions
The arrows represent dependencies between steps. There are no circular references as this will cause an endless loop. Besides circular references, any type of step inter-relation is possible.
Steps 2 and 3 will run parallel and step 4 will run once when 2 and 3 have completed.
public static List<Step> CreateTestWorkflow_SimpleSteps()
{
// create 4 steps from step 1
List<Step> steps = WorkflowManager.CreateSteps(4, 1, "{default_post_url}");
steps.StepNumber(1).AddSubSteps(steps.StepNumber(2), steps.StepNumber(3));
steps.StepNumber(4).AddParentSteps(steps.StepNumber(2), steps.StepNumber(3));
return steps;
}
This workflow is complex because it contains steps that are both parents and siblings to other steps. Steps 5 and 6 has the same parent, step 2. So 5 and 6 are siblings, and step 5 is also the parent of its sibling step 6. Also note: Steps 2 and 3 are siblings, and step 5 is the child of step 2 and also the parent of step 3. So a step can be a parent of its uncle/aunt step.
public static List<Step> CreateTestWorkflow_Complex1()
{
// create 8 steps from step 1
List<Step> steps = WorkflowManager.CreateSteps(8, 1, "{default_post_url}");
steps.StepNumber(1).AddSubSteps(steps.StepNumber(2), steps.StepNumber(3), steps.StepNumber(4));
steps.StepNumber(2).AddSubSteps(steps.StepNumber(5), steps.StepNumber(6));
steps.StepNumber(3).AddSubSteps(steps.StepNumber(6), steps.StepNumber(7));
steps.StepNumber(4).AddSubSteps(steps.StepNumber(6), steps.StepNumber(8));
steps.StepNumber(5).AddSubSteps(steps.StepNumber(3), steps.StepNumber(6));
steps.StepNumber(6).AddSubSteps(steps.StepNumber(8));
steps.StepNumber(7).AddSubSteps(steps.StepNumber(8));
return steps;
}