@@ -30,16 +30,15 @@ public FlowJoinSpec(ITestOutputHelper helper) : base(helper)
30
30
}
31
31
32
32
[ Fact ]
33
- public void A_Flow_using_Join_must_allow_for_cycles ( )
33
+ public async Task A_Flow_using_Join_must_allow_for_cycles ( )
34
34
{
35
- this . AssertAllStagesStopped ( ( ) =>
36
- {
35
+ await this . AssertAllStagesStoppedAsync ( ( ) => {
37
36
const int end = 47 ;
38
- var t = Enumerable . Range ( 0 , end + 1 ) . GroupBy ( i => i % 2 == 0 ) . ToList ( ) ;
37
+ var t = Enumerable . Range ( 0 , end + 1 ) . GroupBy ( i => i % 2 == 0 ) . ToList ( ) ;
39
38
var even = t . First ( x => x . Key ) . ToList ( ) ;
40
39
var odd = t . First ( x => ! x . Key ) . ToList ( ) ;
41
40
var source = Source . From ( Enumerable . Range ( 0 , end + 1 ) ) ;
42
- var result = even . Concat ( odd ) . Concat ( odd . Select ( x => x * 10 ) ) ;
41
+ var result = even . Concat ( odd ) . Concat ( odd . Select ( x => x * 10 ) ) ;
43
42
var probe = this . CreateManualSubscriberProbe < IEnumerable < int > > ( ) ;
44
43
45
44
var flow1 = Flow . FromGraph ( GraphDsl . Create ( b =>
@@ -56,27 +55,27 @@ public void A_Flow_using_Join_must_allow_for_cycles()
56
55
57
56
var flow2 =
58
57
Flow . Create < int > ( )
59
- . Where ( x => x % 2 == 1 )
60
- . Select ( x => x * 10 )
61
- . Buffer ( ( end + 1 ) / 2 , OverflowStrategy . Backpressure )
62
- . Take ( ( end + 1 ) / 2 ) ;
58
+ . Where ( x => x % 2 == 1 )
59
+ . Select ( x => x * 10 )
60
+ . Buffer ( ( end + 1 ) / 2 , OverflowStrategy . Backpressure )
61
+ . Take ( ( end + 1 ) / 2 ) ;
63
62
64
63
flow1 . Join ( flow2 ) . Run ( Materializer ) ;
65
64
66
65
var sub = probe . ExpectSubscription ( ) ;
67
66
sub . Request ( 1 ) ;
68
67
probe . ExpectNext ( ) . Should ( ) . BeEquivalentTo ( result ) ;
69
68
sub . Cancel ( ) ;
69
+ return Task . CompletedTask ;
70
70
} , Materializer ) ;
71
71
}
72
72
73
73
[ Fact ]
74
- public void A_Flow_using_Join_must_allow_for_merge_cycle ( )
74
+ public async Task A_Flow_using_Join_must_allow_for_merge_cycle ( )
75
75
{
76
- this . AssertAllStagesStopped ( ( ) =>
77
- {
78
- var source =
79
- Source . Single ( "lonely traveler" ) . MapMaterializedValue ( _ => Task . FromResult ( "" ) ) ;
76
+ await this . AssertAllStagesStoppedAsync ( ( ) => {
77
+ var source =
78
+ Source . Single ( "lonely traveler" ) . MapMaterializedValue ( _ => Task . FromResult ( "" ) ) ;
80
79
81
80
var flow1 = Flow . FromGraph ( GraphDsl . Create ( Sink . First < string > ( ) , ( b , sink ) =>
82
81
{
@@ -92,16 +91,16 @@ public void A_Flow_using_Join_must_allow_for_merge_cycle()
92
91
var t = flow1 . Join ( Flow . Create < string > ( ) ) . Run ( Materializer ) ;
93
92
t . Wait ( TimeSpan . FromSeconds ( 3 ) ) . Should ( ) . BeTrue ( ) ;
94
93
t . Result . Should ( ) . Be ( "lonely traveler" ) ;
94
+ return Task . CompletedTask ;
95
95
} , Materializer ) ;
96
96
}
97
97
98
98
[ Fact ]
99
- public void A_Flow_using_Join_must_allow_for_merge_preferred_cycle ( )
99
+ public async Task A_Flow_using_Join_must_allow_for_merge_preferred_cycle ( )
100
100
{
101
- this . AssertAllStagesStopped ( ( ) =>
102
- {
103
- var source =
104
- Source . Single ( "lonely traveler" ) . MapMaterializedValue ( _ => Task . FromResult ( "" ) ) ;
101
+ await this . AssertAllStagesStoppedAsync ( ( ) => {
102
+ var source =
103
+ Source . Single ( "lonely traveler" ) . MapMaterializedValue ( _ => Task . FromResult ( "" ) ) ;
105
104
106
105
var flow1 = Flow . FromGraph ( GraphDsl . Create ( Sink . First < string > ( ) , ( b , sink ) =>
107
106
{
@@ -117,18 +116,17 @@ public void A_Flow_using_Join_must_allow_for_merge_preferred_cycle()
117
116
var t = flow1 . Join ( Flow . Create < string > ( ) ) . Run ( Materializer ) ;
118
117
t . Wait ( TimeSpan . FromSeconds ( 3 ) ) . Should ( ) . BeTrue ( ) ;
119
118
t . Result . Should ( ) . Be ( "lonely traveler" ) ;
119
+ return Task . CompletedTask ;
120
120
} , Materializer ) ;
121
121
}
122
122
123
123
[ Fact ]
124
- public void A_Flow_using_Join_must_allow_for_zip_cycle ( )
124
+ public async Task A_Flow_using_Join_must_allow_for_zip_cycle ( )
125
125
{
126
- this . AssertAllStagesStopped ( ( ) =>
127
- {
128
- var source = Source . From ( new [ ] { "traveler1" , "traveler2" } )
129
- . MapMaterializedValue < TestSubscriber . Probe < ( string , string ) > > ( _ => null ) ;
130
-
131
- var flow = Flow . FromGraph ( GraphDsl . Create ( this . SinkProbe < ( string , string ) > ( ) , ( b , sink ) =>
126
+ await this . AssertAllStagesStoppedAsync ( ( ) => {
127
+ var source = Source . From ( new [ ] { "traveler1" , "traveler2" } )
128
+ . MapMaterializedValue < TestSubscriber . Probe < ( string , string ) > > ( _ => null ) ;
129
+ var flow = Flow . FromGraph ( GraphDsl . Create ( this . SinkProbe < ( string , string ) > ( ) , ( b , sink ) =>
132
130
{
133
131
var zip = b . Add ( new Zip < string , string > ( ) ) ;
134
132
var broadcast = b . Add ( new Broadcast < ( string , string ) > ( 2 ) ) ;
@@ -153,23 +151,24 @@ public void A_Flow_using_Join_must_allow_for_zip_cycle()
153
151
var probe = flow . Join ( feedback ) . Run ( Materializer ) ;
154
152
probe . RequestNext ( ( "traveler1" , "ignition" ) ) ;
155
153
probe . RequestNext ( ( "traveler2" , "traveler1" ) ) ;
154
+ return Task . CompletedTask ;
156
155
} , Materializer ) ;
157
156
}
158
157
159
158
[ Fact ]
160
- public void A_Flow_using_Join_must_allow_for_concat_cycle ( )
159
+ public async Task A_Flow_using_Join_must_allow_for_concat_cycle ( )
161
160
{
162
- this . AssertAllStagesStopped ( ( ) =>
163
- {
164
- var flow = Flow . FromGraph ( GraphDsl . Create ( TestSource . SourceProbe < string > ( this ) , Sink . First < string > ( ) , Keep . Both , ( b , source , sink ) =>
165
- {
166
- var concat = b . Add ( Concat . Create < string > ( ) ) ;
167
- var broadcast = b . Add ( new Broadcast < string > ( 2 , true ) ) ;
168
-
169
- b . From ( source ) . To ( concat . In ( 0 ) ) ;
170
- b . From ( concat . Out ) . To ( broadcast . In ) ;
171
- b . From ( broadcast . Out ( 0 ) ) . To ( sink ) ;
172
- return new FlowShape < string , string > ( concat . In ( 1 ) , broadcast . Out ( 1 ) ) ;
161
+ await this . AssertAllStagesStoppedAsync ( ( ) => {
162
+ var flow =
163
+ Flow . FromGraph ( GraphDsl . Create ( TestSource . SourceProbe < string > ( this ) ,
164
+ Sink . First < string > ( ) , Keep . Both , ( b , source , sink ) =>
165
+ {
166
+ var concat = b . Add ( Concat . Create < string > ( ) ) ;
167
+ var broadcast = b . Add ( new Broadcast < string > ( 2 , true ) ) ;
168
+ b . From ( source ) . To ( concat . In ( 0 ) ) ;
169
+ b . From ( concat . Out ) . To ( broadcast . In ) ;
170
+ b . From ( broadcast . Out ( 0 ) ) . To ( sink ) ;
171
+ return new FlowShape < string , string > ( concat . In ( 1 ) , broadcast . Out ( 1 ) ) ;
173
172
} ) ) ;
174
173
175
174
var tuple = flow . Join ( Flow . Create < string > ( ) ) . Run ( Materializer ) ;
@@ -179,14 +178,14 @@ public void A_Flow_using_Join_must_allow_for_concat_cycle()
179
178
t . Wait ( TimeSpan . FromSeconds ( 3 ) ) . Should ( ) . BeTrue ( ) ;
180
179
t . Result . Should ( ) . Be ( "lonely traveler" ) ;
181
180
probe . SendComplete ( ) ;
181
+ return Task . CompletedTask ;
182
182
} , Materializer ) ;
183
183
}
184
184
185
185
[ Fact ]
186
- public void A_Flow_using_Join_must_allow_for_interleave_cycle ( )
186
+ public async Task A_Flow_using_Join_must_allow_for_interleave_cycle ( )
187
187
{
188
- this . AssertAllStagesStopped ( ( ) =>
189
- {
188
+ await this . AssertAllStagesStoppedAsync ( ( ) => {
190
189
var source = Source . Single ( "lonely traveler" ) . MapMaterializedValue ( _ => Task . FromResult ( "" ) ) ;
191
190
var flow = Flow . FromGraph ( GraphDsl . Create ( Sink . First < string > ( ) , ( b , sink ) =>
192
191
{
@@ -198,10 +197,11 @@ public void A_Flow_using_Join_must_allow_for_interleave_cycle()
198
197
b . From ( broadcast . Out ( 0 ) ) . To ( sink ) ;
199
198
return new FlowShape < string , string > ( interleave . In ( 1 ) , broadcast . Out ( 1 ) ) ;
200
199
} ) ) ;
201
-
200
+
202
201
var t = flow . Join ( Flow . Create < string > ( ) ) . Run ( Materializer ) ;
203
202
t . Wait ( TimeSpan . FromSeconds ( 3 ) ) . Should ( ) . BeTrue ( ) ;
204
203
t . Result . Should ( ) . Be ( "lonely traveler" ) ;
204
+ return Task . CompletedTask ;
205
205
} , Materializer ) ;
206
206
}
207
207
}
0 commit comments