@@ -39,41 +39,38 @@ private static
39
39
40
40
41
41
[ Fact ]
42
- public void PrefixAndTail_must_work_on_empty_input ( )
42
+ public async Task PrefixAndTail_must_work_on_empty_input ( )
43
43
{
44
- this . AssertAllStagesStopped ( ( ) =>
45
- {
44
+ await this . AssertAllStagesStoppedAsync ( async ( ) => {
46
45
var futureSink = NewHeadSink ;
47
46
var fut = Source . Empty < int > ( ) . PrefixAndTail ( 10 ) . RunWith ( futureSink , Materializer ) ;
48
47
fut . Wait ( TimeSpan . FromSeconds ( 3 ) ) . Should ( ) . BeTrue ( ) ;
49
48
var tailFlow = fut . Result . Item2 ;
50
49
var tailSubscriber = this . CreateManualSubscriberProbe < int > ( ) ;
51
50
tailFlow . To ( Sink . FromSubscriber ( tailSubscriber ) ) . Run ( Materializer ) ;
52
- tailSubscriber . ExpectSubscriptionAndComplete ( ) ;
51
+ await tailSubscriber . ExpectSubscriptionAndCompleteAsync ( ) ;
53
52
} , Materializer ) ;
54
53
}
55
54
56
55
[ Fact ]
57
- public void PrefixAndTail_must_work_on_short_inputs ( )
56
+ public async Task PrefixAndTail_must_work_on_short_inputs ( )
58
57
{
59
- this . AssertAllStagesStopped ( ( ) =>
60
- {
58
+ await this . AssertAllStagesStoppedAsync ( async ( ) => {
61
59
var futureSink = NewHeadSink ;
62
- var fut = Source . From ( new [ ] { 1 , 2 , 3 } ) . PrefixAndTail ( 10 ) . RunWith ( futureSink , Materializer ) ;
60
+ var fut = Source . From ( new [ ] { 1 , 2 , 3 } ) . PrefixAndTail ( 10 ) . RunWith ( futureSink , Materializer ) ;
63
61
fut . Wait ( TimeSpan . FromSeconds ( 3 ) ) . Should ( ) . BeTrue ( ) ;
64
- fut . Result . Item1 . Should ( ) . BeEquivalentTo ( new [ ] { 1 , 2 , 3 } ) ;
62
+ fut . Result . Item1 . Should ( ) . BeEquivalentTo ( new [ ] { 1 , 2 , 3 } ) ;
65
63
var tailFlow = fut . Result . Item2 ;
66
64
var tailSubscriber = this . CreateManualSubscriberProbe < int > ( ) ;
67
65
tailFlow . To ( Sink . FromSubscriber ( tailSubscriber ) ) . Run ( Materializer ) ;
68
- tailSubscriber . ExpectSubscriptionAndComplete ( ) ;
66
+ await tailSubscriber . ExpectSubscriptionAndCompleteAsync ( ) ;
69
67
} , Materializer ) ;
70
68
}
71
69
72
70
[ Fact ]
73
- public void PrefixAndTail_must_work_on_longer_inputs ( )
71
+ public async Task PrefixAndTail_must_work_on_longer_inputs ( )
74
72
{
75
- this . AssertAllStagesStopped ( ( ) =>
76
- {
73
+ await this . AssertAllStagesStoppedAsync ( ( ) => {
77
74
var futureSink = NewHeadSink ;
78
75
var fut = Source . From ( Enumerable . Range ( 1 , 10 ) ) . PrefixAndTail ( 5 ) . RunWith ( futureSink , Materializer ) ;
79
76
fut . Wait ( TimeSpan . FromSeconds ( 3 ) ) . Should ( ) . BeTrue ( ) ;
@@ -85,14 +82,14 @@ public void PrefixAndTail_must_work_on_longer_inputs()
85
82
var fut2 = tail . Grouped ( 6 ) . RunWith ( futureSink2 , Materializer ) ;
86
83
fut2 . Wait ( TimeSpan . FromSeconds ( 3 ) ) . Should ( ) . BeTrue ( ) ;
87
84
fut2 . Result . Should ( ) . BeEquivalentTo ( Enumerable . Range ( 6 , 5 ) ) ;
85
+ return Task . CompletedTask ;
88
86
} , Materializer ) ;
89
87
}
90
88
91
89
[ Fact ]
92
- public void PrefixAndTail_must_handle_zero_take_count ( )
90
+ public async Task PrefixAndTail_must_handle_zero_take_count ( )
93
91
{
94
- this . AssertAllStagesStopped ( ( ) =>
95
- {
92
+ await this . AssertAllStagesStoppedAsync ( ( ) => {
96
93
var futureSink = NewHeadSink ;
97
94
var fut = Source . From ( Enumerable . Range ( 1 , 10 ) ) . PrefixAndTail ( 0 ) . RunWith ( futureSink , Materializer ) ;
98
95
fut . Wait ( TimeSpan . FromSeconds ( 3 ) ) . Should ( ) . BeTrue ( ) ;
@@ -103,14 +100,14 @@ public void PrefixAndTail_must_handle_zero_take_count()
103
100
var fut2 = tail . Grouped ( 11 ) . RunWith ( futureSink2 , Materializer ) ;
104
101
fut2 . Wait ( TimeSpan . FromSeconds ( 3 ) ) . Should ( ) . BeTrue ( ) ;
105
102
fut2 . Result . Should ( ) . BeEquivalentTo ( Enumerable . Range ( 1 , 10 ) ) ;
103
+ return Task . CompletedTask ;
106
104
} , Materializer ) ;
107
105
}
108
106
109
107
[ Fact ]
110
- public void PrefixAndTail_must_handle_negative_take_count ( )
108
+ public async Task PrefixAndTail_must_handle_negative_take_count ( )
111
109
{
112
- this . AssertAllStagesStopped ( ( ) =>
113
- {
110
+ await this . AssertAllStagesStoppedAsync ( ( ) => {
114
111
var futureSink = NewHeadSink ;
115
112
var fut = Source . From ( Enumerable . Range ( 1 , 10 ) ) . PrefixAndTail ( - 1 ) . RunWith ( futureSink , Materializer ) ;
116
113
fut . Wait ( TimeSpan . FromSeconds ( 3 ) ) . Should ( ) . BeTrue ( ) ;
@@ -121,30 +118,29 @@ public void PrefixAndTail_must_handle_negative_take_count()
121
118
var fut2 = tail . Grouped ( 11 ) . RunWith ( futureSink2 , Materializer ) ;
122
119
fut2 . Wait ( TimeSpan . FromSeconds ( 3 ) ) . Should ( ) . BeTrue ( ) ;
123
120
fut2 . Result . Should ( ) . BeEquivalentTo ( Enumerable . Range ( 1 , 10 ) ) ;
121
+ return Task . CompletedTask ;
124
122
} , Materializer ) ;
125
123
}
126
124
127
125
[ Fact ]
128
- public void PrefixAndTail_must_work_if_size_of_tak_is_equal_to_stream_size ( )
126
+ public async Task PrefixAndTail_must_work_if_size_of_tak_is_equal_to_stream_size ( )
129
127
{
130
- this . AssertAllStagesStopped ( ( ) =>
131
- {
128
+ await this . AssertAllStagesStoppedAsync ( async ( ) => {
132
129
var futureSink = NewHeadSink ;
133
- var fut = Source . From ( Enumerable . Range ( 1 , 10 ) ) . PrefixAndTail ( 10 ) . RunWith ( futureSink , Materializer ) ;
130
+ var fut = Source . From ( Enumerable . Range ( 1 , 10 ) ) . PrefixAndTail ( 10 ) . RunWith ( futureSink , Materializer ) ;
134
131
fut . Wait ( TimeSpan . FromSeconds ( 3 ) ) . Should ( ) . BeTrue ( ) ;
135
132
fut . Result . Item1 . Should ( ) . BeEquivalentTo ( Enumerable . Range ( 1 , 10 ) ) ;
136
133
var tail = fut . Result . Item2 ;
137
134
var subscriber = this . CreateManualSubscriberProbe < int > ( ) ;
138
135
tail . To ( Sink . FromSubscriber ( subscriber ) ) . Run ( Materializer ) ;
139
- subscriber . ExpectSubscriptionAndComplete ( ) ;
136
+ await subscriber . ExpectSubscriptionAndCompleteAsync ( ) ;
140
137
} , Materializer ) ;
141
138
}
142
139
143
140
[ Fact ]
144
- public void PrefixAndTail_must_throw_if_tail_is_attempted_to_be_materialized_twice ( )
141
+ public async Task PrefixAndTail_must_throw_if_tail_is_attempted_to_be_materialized_twice ( )
145
142
{
146
- this . AssertAllStagesStopped ( ( ) =>
147
- {
143
+ await this . AssertAllStagesStoppedAsync ( async ( ) => {
148
144
var futureSink = NewHeadSink ;
149
145
var fut = Source . From ( Enumerable . Range ( 1 , 2 ) ) . PrefixAndTail ( 1 ) . RunWith ( futureSink , Materializer ) ;
150
146
fut . Wait ( TimeSpan . FromSeconds ( 3 ) ) . Should ( ) . BeTrue ( ) ;
@@ -160,15 +156,14 @@ public void PrefixAndTail_must_throw_if_tail_is_attempted_to_be_materialized_twi
160
156
subscriber2 . ExpectSubscriptionAndError ( )
161
157
. Message . Should ( )
162
158
. Be ( "Substream Source cannot be materialized more than once" ) ;
163
- subscriber1 . RequestNext ( 2 ) . ExpectComplete ( ) ;
159
+ await subscriber1 . RequestNext ( 2 ) . ExpectCompleteAsync ( ) ;
164
160
} , Materializer ) ;
165
161
}
166
162
167
163
[ Fact ]
168
- public void PrefixAndTail_must_signal_error_if_substream_has_been_not_subscribed_in_time ( )
164
+ public async Task PrefixAndTail_must_signal_error_if_substream_has_been_not_subscribed_in_time ( )
169
165
{
170
- this . AssertAllStagesStopped ( ( ) =>
171
- {
166
+ await this . AssertAllStagesStoppedAsync ( ( ) => {
172
167
var ms = 300 ;
173
168
174
169
var settings = ActorMaterializerSettings . Create ( Sys )
@@ -190,21 +185,21 @@ public void PrefixAndTail_must_signal_error_if_substream_has_been_not_subscribed
190
185
subscriber . ExpectSubscriptionAndError ( )
191
186
. Message . Should ( )
192
187
. Be ( "Substream Source has not been materialized in 00:00:00.3000000" ) ;
188
+ return Task . CompletedTask ;
193
189
} , Materializer ) ;
194
190
}
195
191
196
192
[ Fact ]
197
- public void PrefixAndTail_must_not_fail_the_stream_if_substream_has_not_been_subscribed_in_time_and_configured_subscription_timeout_is_noop ( )
193
+ public async Task PrefixAndTail_must_not_fail_the_stream_if_substream_has_not_been_subscribed_in_time_and_configured_subscription_timeout_is_noop ( )
198
194
{
199
- this . AssertAllStagesStopped ( ( ) =>
200
- {
201
- var settings = ActorMaterializerSettings . Create ( Sys )
202
- . WithSubscriptionTimeoutSettings (
203
- new StreamSubscriptionTimeoutSettings (
204
- StreamSubscriptionTimeoutTerminationMode . NoopTermination ,
205
- TimeSpan . FromMilliseconds ( 1 ) ) ) ;
195
+ await this . AssertAllStagesStoppedAsync ( async ( ) => {
196
+ var settings = ActorMaterializerSettings . Create ( Sys )
197
+ . WithSubscriptionTimeoutSettings (
198
+ new StreamSubscriptionTimeoutSettings (
199
+ StreamSubscriptionTimeoutTerminationMode . NoopTermination ,
200
+ TimeSpan . FromMilliseconds ( 1 ) ) ) ;
206
201
var tightTimeoutMaterializer = ActorMaterializer . Create ( Sys , settings ) ;
207
-
202
+
208
203
var futureSink = NewHeadSink ;
209
204
var fut = Source . From ( Enumerable . Range ( 1 , 2 ) ) . PrefixAndTail ( 1 ) . RunWith ( futureSink , tightTimeoutMaterializer ) ;
210
205
fut . Wait ( TimeSpan . FromSeconds ( 3 ) ) . Should ( ) . BeTrue ( ) ;
@@ -214,27 +209,26 @@ public void PrefixAndTail_must_not_fail_the_stream_if_substream_has_not_been_sub
214
209
Thread . Sleep ( 200 ) ;
215
210
fut . Result . Item2 . To ( Sink . FromSubscriber ( subscriber ) ) . Run ( tightTimeoutMaterializer ) ;
216
211
subscriber . ExpectSubscription ( ) . Request ( 2 ) ;
217
- subscriber . ExpectNext ( 2 ) . ExpectComplete ( ) ;
212
+ await subscriber . ExpectNext ( 2 ) . ExpectCompleteAsync ( ) ;
218
213
} , Materializer ) ;
219
214
}
220
215
221
216
[ Fact ]
222
- public void PrefixAndTail_must_shut_down_main_stage_if_substream_is_empty_even_when_not_subscribed ( )
217
+ public async Task PrefixAndTail_must_shut_down_main_stage_if_substream_is_empty_even_when_not_subscribed ( )
223
218
{
224
- this . AssertAllStagesStopped ( ( ) =>
225
- {
219
+ await this . AssertAllStagesStoppedAsync ( ( ) => {
226
220
var futureSink = NewHeadSink ;
227
221
var fut = Source . Single ( 1 ) . PrefixAndTail ( 1 ) . RunWith ( futureSink , Materializer ) ;
228
222
fut . Wait ( TimeSpan . FromSeconds ( 3 ) ) . Should ( ) . BeTrue ( ) ;
229
223
fut . Result . Item1 . Should ( ) . ContainSingle ( i => i == 1 ) ;
224
+ return Task . CompletedTask ;
230
225
} , Materializer ) ;
231
226
}
232
227
233
228
[ Fact ]
234
- public void PrefixAndTail_must_handle_OnError_when_no_substream_is_open ( )
229
+ public async Task PrefixAndTail_must_handle_OnError_when_no_substream_is_open ( )
235
230
{
236
- this . AssertAllStagesStopped ( ( ) =>
237
- {
231
+ await this . AssertAllStagesStoppedAsync ( async ( ) => {
238
232
var publisher = this . CreateManualPublisherProbe < int > ( ) ;
239
233
var subscriber = this . CreateManualSubscriberProbe < ( IImmutableList < int > , Source < int , NotUsed > ) > ( ) ;
240
234
@@ -243,12 +237,12 @@ public void PrefixAndTail_must_handle_OnError_when_no_substream_is_open()
243
237
. To ( Sink . FromSubscriber ( subscriber ) )
244
238
. Run ( Materializer ) ;
245
239
246
- var upstream = publisher . ExpectSubscription ( ) ;
247
- var downstream = subscriber . ExpectSubscription ( ) ;
240
+ var upstream = await publisher . ExpectSubscriptionAsync ( ) ;
241
+ var downstream = await subscriber . ExpectSubscriptionAsync ( ) ;
248
242
249
243
downstream . Request ( 1 ) ;
250
244
251
- upstream . ExpectRequest ( ) ;
245
+ await upstream . ExpectRequestAsync ( ) ;
252
246
upstream . SendNext ( 1 ) ;
253
247
upstream . SendError ( TestException ) ;
254
248
@@ -257,10 +251,9 @@ public void PrefixAndTail_must_handle_OnError_when_no_substream_is_open()
257
251
}
258
252
259
253
[ Fact ]
260
- public void PrefixAndTail_must_handle_OnError_when_substream_is_open ( )
254
+ public async Task PrefixAndTail_must_handle_OnError_when_substream_is_open ( )
261
255
{
262
- this . AssertAllStagesStopped ( ( ) =>
263
- {
256
+ await this . AssertAllStagesStoppedAsync ( async ( ) => {
264
257
var publisher = this . CreateManualPublisherProbe < int > ( ) ;
265
258
var subscriber = this . CreateManualSubscriberProbe < ( IImmutableList < int > , Source < int , NotUsed > ) > ( ) ;
266
259
@@ -269,32 +262,31 @@ public void PrefixAndTail_must_handle_OnError_when_substream_is_open()
269
262
. To ( Sink . FromSubscriber ( subscriber ) )
270
263
. Run ( Materializer ) ;
271
264
272
- var upstream = publisher . ExpectSubscription ( ) ;
273
- var downstream = subscriber . ExpectSubscription ( ) ;
265
+ var upstream = await publisher . ExpectSubscriptionAsync ( ) ;
266
+ var downstream = await subscriber . ExpectSubscriptionAsync ( ) ;
274
267
275
268
downstream . Request ( 1000 ) ;
276
269
277
- upstream . ExpectRequest ( ) ;
270
+ await upstream . ExpectRequestAsync ( ) ;
278
271
upstream . SendNext ( 1 ) ;
279
272
280
- var t = subscriber . ExpectNext ( ) ;
273
+ var t = await subscriber . ExpectNextAsync ( ) ;
281
274
t . Item1 . Should ( ) . ContainSingle ( i => i == 1 ) ;
282
275
var tail = t . Item2 ;
283
- subscriber . ExpectComplete ( ) ;
276
+ await subscriber . ExpectCompleteAsync ( ) ;
284
277
285
278
var substreamSubscriber = this . CreateManualSubscriberProbe < int > ( ) ;
286
279
tail . To ( Sink . FromSubscriber ( substreamSubscriber ) ) . Run ( Materializer ) ;
287
- substreamSubscriber . ExpectSubscription ( ) ;
280
+ await substreamSubscriber . ExpectSubscriptionAsync ( ) ;
288
281
upstream . SendError ( TestException ) ;
289
282
substreamSubscriber . ExpectError ( ) . Should ( ) . Be ( TestException ) ;
290
283
} , Materializer ) ;
291
284
}
292
285
293
286
[ Fact ]
294
- public void PrefixAndTail_must_handle_master_stream_cancellation ( )
287
+ public async Task PrefixAndTail_must_handle_master_stream_cancellation ( )
295
288
{
296
- this . AssertAllStagesStopped ( ( ) =>
297
- {
289
+ await this . AssertAllStagesStoppedAsync ( async ( ) => {
298
290
var publisher = this . CreateManualPublisherProbe < int > ( ) ;
299
291
var subscriber = this . CreateManualSubscriberProbe < ( IImmutableList < int > , Source < int , NotUsed > ) > ( ) ;
300
292
@@ -303,24 +295,23 @@ public void PrefixAndTail_must_handle_master_stream_cancellation()
303
295
. To ( Sink . FromSubscriber ( subscriber ) )
304
296
. Run ( Materializer ) ;
305
297
306
- var upstream = publisher . ExpectSubscription ( ) ;
307
- var downstream = subscriber . ExpectSubscription ( ) ;
298
+ var upstream = await publisher . ExpectSubscriptionAsync ( ) ;
299
+ var downstream = await subscriber . ExpectSubscriptionAsync ( ) ;
308
300
309
301
downstream . Request ( 1 ) ;
310
302
311
- upstream . ExpectRequest ( ) ;
303
+ await upstream . ExpectRequestAsync ( ) ;
312
304
upstream . SendNext ( 1 ) ;
313
305
314
306
downstream . Cancel ( ) ;
315
- upstream . ExpectCancellation ( ) ;
307
+ await upstream . ExpectCancellationAsync ( ) ;
316
308
} , Materializer ) ;
317
309
}
318
310
319
311
[ Fact ]
320
- public void PrefixAndTail_must_handle_substream_cancellation ( )
312
+ public async Task PrefixAndTail_must_handle_substream_cancellation ( )
321
313
{
322
- this . AssertAllStagesStopped ( ( ) =>
323
- {
314
+ await this . AssertAllStagesStoppedAsync ( async ( ) => {
324
315
var publisher = this . CreateManualPublisherProbe < int > ( ) ;
325
316
var subscriber = this . CreateManualSubscriberProbe < ( IImmutableList < int > , Source < int , NotUsed > ) > ( ) ;
326
317
@@ -329,32 +320,31 @@ public void PrefixAndTail_must_handle_substream_cancellation()
329
320
. To ( Sink . FromSubscriber ( subscriber ) )
330
321
. Run ( Materializer ) ;
331
322
332
- var upstream = publisher . ExpectSubscription ( ) ;
333
- var downstream = subscriber . ExpectSubscription ( ) ;
323
+ var upstream = await publisher . ExpectSubscriptionAsync ( ) ;
324
+ var downstream = await subscriber . ExpectSubscriptionAsync ( ) ;
334
325
335
326
downstream . Request ( 1000 ) ;
336
327
337
- upstream . ExpectRequest ( ) ;
328
+ await upstream . ExpectRequestAsync ( ) ;
338
329
upstream . SendNext ( 1 ) ;
339
330
340
- var t = subscriber . ExpectNext ( ) ;
331
+ var t = await subscriber . ExpectNextAsync ( ) ;
341
332
t . Item1 . Should ( ) . ContainSingle ( i => i == 1 ) ;
342
333
var tail = t . Item2 ;
343
- subscriber . ExpectComplete ( ) ;
334
+ await subscriber . ExpectCompleteAsync ( ) ;
344
335
345
336
var substreamSubscriber = this . CreateManualSubscriberProbe < int > ( ) ;
346
337
tail . To ( Sink . FromSubscriber ( substreamSubscriber ) ) . Run ( Materializer ) ;
347
- substreamSubscriber . ExpectSubscription ( ) . Cancel ( ) ;
338
+ ( await substreamSubscriber . ExpectSubscriptionAsync ( ) ) . Cancel ( ) ;
348
339
349
- upstream . ExpectCancellation ( ) ;
340
+ await upstream . ExpectCancellationAsync ( ) ;
350
341
} , Materializer ) ;
351
342
}
352
343
353
344
[ Fact ]
354
- public void PrefixAndTail_must_pass_along_early_cancellation ( )
345
+ public async Task PrefixAndTail_must_pass_along_early_cancellation ( )
355
346
{
356
- this . AssertAllStagesStopped ( ( ) =>
357
- {
347
+ await this . AssertAllStagesStoppedAsync ( async ( ) => {
358
348
var up = this . CreateManualPublisherProbe < int > ( ) ;
359
349
var down = this . CreateManualSubscriberProbe < ( IImmutableList < int > , Source < int , NotUsed > ) > ( ) ;
360
350
@@ -363,16 +353,16 @@ public void PrefixAndTail_must_pass_along_early_cancellation()
363
353
. To ( Sink . FromSubscriber ( down ) )
364
354
. Run ( Materializer ) ;
365
355
366
- var downstream = down . ExpectSubscription ( ) ;
356
+ var downstream = await down . ExpectSubscriptionAsync ( ) ;
367
357
downstream . Cancel ( ) ;
368
358
up . Subscribe ( flowSubscriber ) ;
369
- var upSub = up . ExpectSubscription ( ) ;
370
- upSub . ExpectCancellation ( ) ;
359
+ var upSub = await up . ExpectSubscriptionAsync ( ) ;
360
+ await upSub . ExpectCancellationAsync ( ) ;
371
361
} , Materializer ) ;
372
362
}
373
363
374
364
[ Fact ]
375
- public void PrefixAndTail_must_work_even_if_tail_subscriber_arrives_after_substream_completion ( )
365
+ public async Task PrefixAndTail_must_work_even_if_tail_subscriber_arrives_after_substream_completion ( )
376
366
{
377
367
var pub = this . CreateManualPublisherProbe < int > ( ) ;
378
368
var sub = this . CreateManualSubscriberProbe < int > ( ) ;
@@ -381,7 +371,7 @@ public void PrefixAndTail_must_work_even_if_tail_subscriber_arrives_after_substr
381
371
Source . FromPublisher ( pub )
382
372
. PrefixAndTail ( 1 )
383
373
. RunWith ( Sink . First < ( IImmutableList < int > , Source < int , NotUsed > ) > ( ) , Materializer ) ;
384
- var s = pub . ExpectSubscription ( ) ;
374
+ var s = await pub . ExpectSubscriptionAsync ( ) ;
385
375
s . SendNext ( 0 ) ;
386
376
387
377
f . Wait ( TimeSpan . FromSeconds ( 3 ) ) . Should ( ) . BeTrue ( ) ;
@@ -390,7 +380,7 @@ public void PrefixAndTail_must_work_even_if_tail_subscriber_arrives_after_substr
390
380
s . SendComplete ( ) ;
391
381
392
382
tailPub . Subscribe ( sub ) ;
393
- sub . ExpectSubscriptionAndComplete ( ) ;
383
+ await sub . ExpectSubscriptionAndCompleteAsync ( ) ;
394
384
}
395
385
}
396
386
}
0 commit comments