Skip to content

Commit 36d4ade

Browse files
authored
Convert Akka.Stream.TestKit to async - StreamTestKitSpec (#5912)
1 parent e65584e commit 36d4ade

File tree

1 file changed

+84
-77
lines changed

1 file changed

+84
-77
lines changed

src/core/Akka.Streams.TestKit.Tests/StreamTestKitSpec.cs

Lines changed: 84 additions & 77 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77

88
using System;
99
using System.Linq;
10+
using System.Threading.Tasks;
1011
using Akka.Streams.Dsl;
1112
using Akka.TestKit;
1213
using FluentAssertions;
@@ -27,27 +28,27 @@ public StreamTestKitSpec(ITestOutputHelper output = null) : base(output)
2728
private Exception Ex() => new TestException("Boom!");
2829

2930
[Fact]
30-
public void TestSink_Probe_ToStrict()
31+
public async Task TestSink_Probe_ToStrictAsync()
3132
{
32-
Source.From(Enumerable.Range(1, 4))
33-
.RunWith(this.SinkProbe<int>(), Materializer)
34-
.ToStrict(TimeSpan.FromMilliseconds(300))
33+
(await Source.From(Enumerable.Range(1, 4))
34+
.RunWith(this.SinkProbe<int>(), Materializer)
35+
.ToStrictAsync(TimeSpan.FromMilliseconds(300)))
3536
.Should()
3637
.Equal(1, 2, 3, 4);
3738
}
3839

39-
[Fact(Skip = "Skipped for async_testkit conversion build")]
40-
public void TestSink_Probe_ToStrict_with_failing_source()
40+
[Fact]
41+
public async Task TestSink_Probe_ToStrictAsync_with_failing_source()
4142
{
42-
var error = Record.Exception(() =>
43+
var error = await Record.ExceptionAsync(async () =>
4344
{
44-
Source.From(Enumerable.Range(1, 3).Select(i =>
45-
{
46-
if (i == 3)
47-
throw Ex();
48-
return i;
49-
})).RunWith(this.SinkProbe<int>(), Materializer)
50-
.ToStrict(TimeSpan.FromMilliseconds(300));
45+
await Source.From(Enumerable.Range(1, 3).Select(i =>
46+
{
47+
if (i == 3)
48+
throw Ex();
49+
return i;
50+
})).RunWith(this.SinkProbe<int>(), Materializer)
51+
.ToStrictAsync(TimeSpan.FromMilliseconds(300));
5152
});
5253

5354
var aggregateException = error.InnerException;
@@ -56,165 +57,171 @@ public void TestSink_Probe_ToStrict_with_failing_source()
5657
}
5758

5859
[Fact]
59-
public void TestSink_Probe_ToStrict_when_subscription_was_already_obtained()
60+
public async Task TestSink_Probe_ToStrictAsync_when_subscription_was_already_obtained()
6061
{
6162
var p = Source.From(Enumerable.Range(1, 4)).RunWith(this.SinkProbe<int>(), Materializer);
62-
p.ExpectSubscription();
63-
p.ToStrict(TimeSpan.FromMilliseconds(300)).Should().Equal(1, 2, 3, 4);
63+
await p.ExpectSubscriptionAsync();
64+
(await p.ToStrictAsync(TimeSpan.FromMilliseconds(300))).Should().Equal(1, 2, 3, 4);
6465
}
6566

6667
[Fact]
67-
public void TestSink_Probe_ExpectNextOrError_with_right_element()
68+
public async Task TestSink_Probe_ExpectNextOrErrorAsync_with_right_element()
6869
{
69-
Source.From(Enumerable.Range(1, 4)).RunWith(this.SinkProbe<int>(), Materializer)
70+
await Source.From(Enumerable.Range(1, 4)).RunWith(this.SinkProbe<int>(), Materializer)
7071
.Request(4)
71-
.ExpectNextOrError(1, Ex());
72+
.ExpectNextOrErrorAsync(1, Ex()).Task;
7273
}
7374

7475
[Fact]
75-
public void TestSink_Probe_ExpectNextOrError_with_right_exception()
76+
public async Task TestSink_Probe_ExpectNextOrErrorAsync_with_right_exception()
7677
{
77-
Source.Failed<int>(Ex()).RunWith(this.SinkProbe<int>(), Materializer)
78+
await Source.Failed<int>(Ex()).RunWith(this.SinkProbe<int>(), Materializer)
7879
.Request(4)
79-
.ExpectNextOrError(1, Ex());
80+
.ExpectNextOrErrorAsync(1, Ex()).Task;
8081
}
8182

8283
[Fact]
83-
public void TestSink_Probe_ExpectNextOrError_fail_if_the_next_element_is_not_the_expected_one()
84+
public async Task TestSink_Probe_ExpectNextOrErrorAsync_fail_if_the_next_element_is_not_the_expected_one()
8485
{
85-
Record.Exception(() =>
86+
var error = await Record.ExceptionAsync(async () =>
8687
{
87-
Source.From(Enumerable.Range(1, 4)).RunWith(this.SinkProbe<int>(), Materializer)
88+
await Source.From(Enumerable.Range(1, 4)).RunWith(this.SinkProbe<int>(), Materializer)
8889
.Request(4)
89-
.ExpectNextOrError(100, Ex());
90-
}).Message.Should().Contain("OnNext(100)");
90+
.ExpectNextOrErrorAsync(100, Ex()).Task;
91+
});
92+
error.Message.Should().Contain("OnNext(100)");
9193
}
9294

9395
[Fact]
94-
public void TestSink_Probe_ExpectError()
96+
public async Task TestSink_Probe_ExpectErrorAsync()
9597
{
96-
Source.Failed<int>(Ex()).RunWith(this.SinkProbe<int>(), Materializer)
98+
(await Source.Failed<int>(Ex()).RunWith(this.SinkProbe<int>(), Materializer)
9799
.Request(1)
98-
.ExpectError().Should().Be(Ex());
100+
.ExpectErrorAsync()).Should().Be(Ex());
99101
}
100102

101103
[Fact]
102-
public void TestSink_Probe_ExpectError_fail_if_no_error_signalled()
104+
public async Task TestSink_Probe_ExpectErrorAsync_fail_if_no_error_signalled()
103105
{
104-
Record.Exception(() =>
106+
var error = await Record.ExceptionAsync(async () =>
105107
{
106-
Source.From(Enumerable.Range(1, 4)).RunWith(this.SinkProbe<int>(), Materializer)
108+
await Source.From(Enumerable.Range(1, 4)).RunWith(this.SinkProbe<int>(), Materializer)
107109
.Request(1)
108-
.ExpectError();
109-
}).Message.Should().Contain("OnNext");
110+
.ExpectErrorAsync();
111+
});
112+
error.Message.Should().Contain("OnNext");
110113
}
111114

112115
[Fact]
113-
public void TestSink_Probe_ExpectComplete_should_fail_if_error_signalled()
116+
public void TestSink_Probe_ExpectCompleteAsync_should_fail_if_error_signalled()
114117
{
115-
Record.Exception(() =>
118+
var error = Record.Exception(() =>
116119
{
117120
Source.Failed<int>(Ex()).RunWith(this.SinkProbe<int>(), Materializer)
118121
.Request(1)
119122
.ExpectComplete();
120-
}).Message.Should().Contain("OnError");
123+
});
124+
error.Message.Should().Contain("OnError");
121125
}
122126

123127
[Fact]
124-
public void TestSink_Probe_ExpectComplete_should_fail_if_next_element_signalled()
128+
public async Task TestSink_Probe_ExpectCompleteAsync_should_fail_if_next_element_signalled()
125129
{
126-
Record.Exception(() =>
130+
var error = await Record.ExceptionAsync(async () =>
127131
{
128-
Source.From(Enumerable.Range(1, 4)).RunWith(this.SinkProbe<int>(), Materializer)
132+
await Source.From(Enumerable.Range(1, 4)).RunWith(this.SinkProbe<int>(), Materializer)
129133
.Request(1)
130-
.ExpectComplete();
131-
}).Message.Should().Contain("OnNext");
134+
.ExpectCompleteAsync().Task;
135+
});
136+
error.Message.Should().Contain("OnNext");
132137
}
133138

134139
[Fact]
135-
public void TestSink_Probe_ExpectNextOrComplete_with_right_element()
140+
public async Task TestSink_Probe_ExpectNextOrCompleteAsync_with_right_element()
136141
{
137-
Source.From(Enumerable.Range(1, 4)).RunWith(this.SinkProbe<int>(), Materializer)
142+
await Source.From(Enumerable.Range(1, 4)).RunWith(this.SinkProbe<int>(), Materializer)
138143
.Request(4)
139-
.ExpectNextOrComplete(1);
144+
.ExpectNextOrCompleteAsync(1).Task;
140145
}
141146

142147
[Fact]
143-
public void TestSink_Probe_ExpectNextOrComplete_with_completion()
148+
public async Task TestSink_Probe_ExpectNextOrCompleteAsync_with_completion()
144149
{
145-
Source.Single(1).RunWith(this.SinkProbe<int>(), Materializer)
150+
await Source.Single(1).RunWith(this.SinkProbe<int>(), Materializer)
146151
.Request(4)
147-
.ExpectNextOrComplete(1)
148-
.ExpectNextOrComplete(1337);
152+
.ExpectNextOrCompleteAsync(1)
153+
.ExpectNextOrCompleteAsync(1337).Task;
149154
}
150155

151156
[Fact]
152-
public void TestSink_Probe_ExpectNextPredicate_should_pass_with_right_element()
157+
public async Task TestSink_Probe_ExpectNextAsync_should_pass_with_right_element()
153158
{
154-
Source.Single(1)
159+
(await Source.Single(1)
155160
.RunWith(this.SinkProbe<int>(), Materializer)
156161
.Request(1)
157-
.ExpectNext<int>(i => i == 1)
162+
.ExpectNextAsync<int>(i => i == 1))
158163
.ShouldBe(1);
159164
}
160165

161166
[Fact]
162-
public void TestSink_Probe_ExpectNextPredicate_should_fail_with_wrong_element()
167+
public async Task TestSink_Probe_ExpectNextPredicateAsync_should_fail_with_wrong_element()
163168
{
164-
Record.Exception(() =>
169+
var error = await Record.ExceptionAsync(async () =>
165170
{
166-
Source.Single(1)
171+
await Source.Single(1)
167172
.RunWith(this.SinkProbe<int>(), Materializer)
168173
.Request(1)
169-
.ExpectNext<int>(i => i == 2);
170-
}).Message.ShouldStartWith("Got a message of the expected type");
174+
.ExpectNextAsync<int>(i => i == 2);
175+
});
176+
error.Message.ShouldStartWith("Got a message of the expected type");
171177
}
172178

173179
[Fact]
174-
public void TestSink_Probe_MatchNext_should_pass_with_right_element()
180+
public async Task TestSink_Probe_MatchNextAsync_should_pass_with_right_element()
175181
{
176-
Source.Single(1)
182+
await Source.Single(1)
177183
.RunWith(this.SinkProbe<int>(), Materializer)
178184
.Request(1)
179-
.MatchNext<int>(i => i == 1);
185+
.MatchNextAsync<int>(i => i == 1).Task;
180186
}
181187

182188
[Fact]
183-
public void TestSink_Probe_MatchNext_should_allow_to_chain_test_methods()
189+
public async Task TestSink_Probe_MatchNextAsync_should_allow_to_chain_test_methods()
184190
{
185-
Source.From(Enumerable.Range(1, 2))
191+
await Source.From(Enumerable.Range(1, 2))
186192
.RunWith(this.SinkProbe<int>(), Materializer)
187193
.Request(2)
188-
.MatchNext<int>(i => i == 1)
189-
.ExpectNext(2);
194+
.MatchNextAsync<int>(i => i == 1)
195+
.ExpectNextAsync(2).Task;
190196
}
191197

192198
[Fact]
193-
public void TestSink_Probe_MatchNext_should_fail_with_wrong_element()
199+
public async Task TestSink_Probe_MatchNextAsync_should_fail_with_wrong_element()
194200
{
195-
Record.Exception(() =>
201+
var error = await Record.ExceptionAsync(async () =>
196202
{
197-
Source.Single(1)
203+
await Source.Single(1)
198204
.RunWith(this.SinkProbe<int>(), Materializer)
199205
.Request(1)
200-
.MatchNext<int>(i => i == 2);
201-
}).Message.ShouldStartWith("Got a message of the expected type");
206+
.MatchNextAsync<int>(i => i == 2).Task;
207+
});
208+
error.Message.ShouldStartWith("Got a message of the expected type");
202209
}
203210

204211
[Fact]
205-
public void TestSink_Probe_ExpectNextN_given_a_number_of_elements()
212+
public async Task TestSink_Probe_ExpectNextNAsync_given_a_number_of_elements()
206213
{
207-
Source.From(Enumerable.Range(1, 4)).RunWith(this.SinkProbe<int>(), Materializer)
214+
(await Source.From(Enumerable.Range(1, 4)).RunWith(this.SinkProbe<int>(), Materializer)
208215
.Request(4)
209-
.ExpectNextN(4).Should().Equal(1, 2, 3, 4);
216+
.ExpectNextNAsync(4).ToListAsync()).Should().Equal(1, 2, 3, 4);
210217
}
211218

212219
[Fact]
213-
public void TestSink_Probe_ExpectNextN_given_specific_elements()
220+
public async Task TestSink_Probe_ExpectNextNAsync_given_specific_elements()
214221
{
215-
Source.From(Enumerable.Range(1, 4)).RunWith(this.SinkProbe<int>(), Materializer)
222+
await Source.From(Enumerable.Range(1, 4)).RunWith(this.SinkProbe<int>(), Materializer)
216223
.Request(4)
217-
.ExpectNextN(new[] {1, 2, 3, 4});
224+
.ExpectNextNAsync(new[] {1, 2, 3, 4}).Task;
218225
}
219226
}
220227
}

0 commit comments

Comments
 (0)