@@ -18,7 +18,6 @@ public class ForeachScenario : WorkflowTest<ForeachScenario.ForeachWorkflow, For
18
18
19
19
public class DoSomething : StepBody
20
20
{
21
-
22
21
public override ExecutionResult Run ( IStepExecutionContext context )
23
22
{
24
23
Step2Ticker ++ ;
@@ -29,6 +28,9 @@ public override ExecutionResult Run(IStepExecutionContext context)
29
28
30
29
public class MyDataClass
31
30
{
31
+ public List < int > Numbers { get ; set ; } = new List < int > ( ) ;
32
+
33
+ public bool IsParallel { get ; set ; } = true ;
32
34
}
33
35
34
36
public class ForeachWorkflow : IWorkflow < MyDataClass >
@@ -43,7 +45,7 @@ public void Build(IWorkflowBuilder<MyDataClass> builder)
43
45
Step1Ticker ++ ;
44
46
return ExecutionResult . Next ( ) ;
45
47
} )
46
- . ForEach ( x => new List < int > { 2 , 2 , 3 } )
48
+ . ForEach ( x => x . Numbers , x => x . IsParallel )
47
49
. Do ( x => x . StartWith < DoSomething > ( ) )
48
50
. Then ( context =>
49
51
{
@@ -57,12 +59,18 @@ public void Build(IWorkflowBuilder<MyDataClass> builder)
57
59
public ForeachScenario ( )
58
60
{
59
61
Setup ( ) ;
62
+
63
+ Step1Ticker = 0 ;
64
+ Step2Ticker = 0 ;
65
+ Step3Ticker = 0 ;
66
+ AfterLoopValue = 0 ;
67
+ CheckSum = 0 ;
60
68
}
61
69
62
70
[ Fact ]
63
71
public void Scenario ( )
64
72
{
65
- var workflowId = StartWorkflow ( null ) ;
73
+ var workflowId = StartWorkflow ( new MyDataClass { Numbers = new List < int > { 2 , 2 , 3 } } ) ;
66
74
WaitForWorkflowToComplete ( workflowId , TimeSpan . FromSeconds ( 30 ) ) ;
67
75
68
76
Step1Ticker . Should ( ) . Be ( 1 ) ;
@@ -73,5 +81,20 @@ public void Scenario()
73
81
GetStatus ( workflowId ) . Should ( ) . Be ( WorkflowStatus . Complete ) ;
74
82
UnhandledStepErrors . Count . Should ( ) . Be ( 0 ) ;
75
83
}
84
+
85
+ [ Fact ]
86
+ public void EmptyCollectionSequentialScenario ( )
87
+ {
88
+ var workflowId = StartWorkflow ( new MyDataClass { IsParallel = false } ) ;
89
+ WaitForWorkflowToComplete ( workflowId , TimeSpan . FromSeconds ( 30 ) ) ;
90
+
91
+ GetStatus ( workflowId ) . Should ( ) . Be ( WorkflowStatus . Complete ) ;
92
+ UnhandledStepErrors . Count . Should ( ) . Be ( 0 ) ;
93
+ Step1Ticker . Should ( ) . Be ( 1 ) ;
94
+ Step2Ticker . Should ( ) . Be ( 0 ) ;
95
+ Step3Ticker . Should ( ) . Be ( 1 ) ;
96
+ AfterLoopValue . Should ( ) . Be ( 0 ) ;
97
+ CheckSum . Should ( ) . Be ( 0 ) ;
98
+ }
76
99
}
77
100
}
0 commit comments