Skip to content

Commit eba8465

Browse files
committed
Simplify FiberAndTaskPairListTests.
1 parent 62f19fa commit eba8465

File tree

1 file changed

+42
-21
lines changed

1 file changed

+42
-21
lines changed

src/AsyncFiberWorksTests/FiberAndTaskPairListTests.cs

Lines changed: 42 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -13,11 +13,10 @@ namespace AsyncFiberWorksTests
1313
public class FiberAndTaskPairListTests
1414
{
1515
[Test]
16-
public void SubscribeSimpleActions()
16+
public async Task SubscribeSimpleActions()
1717
{
18-
// Fiber of main thread for Assertion.
19-
var mainLoop = new ThreadPoolAdapter();
20-
var fiber = mainLoop.CreateFiber();
18+
// Task for Assertion.
19+
var tcs = new TaskCompletionSource<bool>();
2120

2221
var taskList = new FiberAndTaskPairList();
2322
long counter = 0;
@@ -37,24 +36,31 @@ public void SubscribeSimpleActions()
3736
var disposable1 = taskList.Add(action1);
3837
var disposable2 = taskList.Add(action2);
3938

39+
var fiber = new PoolFiber();
4040
_ = Task.Run(async () =>
4141
{
4242
await taskList.InvokeSequentialAsync(fiber);
4343
await fiber.EnqueueAsync(() =>
4444
{
45-
Assert.AreEqual(301, counter);
45+
try
46+
{
47+
Assert.AreEqual(301, counter);
48+
}
49+
catch (Exception ex)
50+
{
51+
tcs.SetException(ex);
52+
}
4653
});
47-
mainLoop.Stop();
54+
tcs.SetResult(true);
4855
});
49-
mainLoop.Run();
56+
await tcs.Task;
5057
}
5158

5259
[Test]
53-
public void SubscribeFuncTask()
60+
public async Task SubscribeFuncTask()
5461
{
55-
// Fiber of main thread for Assertion.
56-
var mainLoop = new ThreadPoolAdapter();
57-
var fiber = mainLoop.CreateFiber();
62+
// Task for Assertion.
63+
var tcs = new TaskCompletionSource<bool>();
5864

5965
var taskList = new FiberAndTaskPairList();
6066
long counter = 0;
@@ -76,16 +82,24 @@ public void SubscribeFuncTask()
7682
var disposable1 = taskList.Add(action1);
7783
var disposable2 = taskList.Add(action2);
7884

85+
var fiber = new PoolFiber();
7986
_ = Task.Run(async () =>
8087
{
8188
await taskList.InvokeSequentialAsync(fiber);
8289
await fiber.EnqueueAsync(() =>
8390
{
84-
Assert.AreEqual(301, counter);
91+
try
92+
{
93+
Assert.AreEqual(301, counter);
94+
}
95+
catch (Exception ex)
96+
{
97+
tcs.SetException(ex);
98+
}
8599
});
86-
mainLoop.Stop();
100+
tcs.SetResult(true);
87101
});
88-
mainLoop.Run();
102+
await tcs.Task;
89103
}
90104

91105
[Test]
@@ -120,11 +134,10 @@ public async Task AsyncInvokingWithArgument()
120134
}
121135

122136
[Test]
123-
public void ToggleAtUnsubscribe()
137+
public async Task ToggleAtUnsubscribe()
124138
{
125-
// Fiber of main thread for Assertion.
126-
var mainLoop = new ThreadPoolAdapter();
127-
var fiber = mainLoop.CreateFiber();
139+
// Task for Assertion.
140+
var tcs = new TaskCompletionSource<bool>();
128141

129142
var taskList = new FiberAndTaskPairList();
130143
long counter = 0;
@@ -141,16 +154,24 @@ public void ToggleAtUnsubscribe()
141154
var disposable2 = taskList.Add(action);
142155
unsubscriber.AppendDisposable(disposable2);
143156

157+
var fiber = new PoolFiber();
144158
_ = Task.Run(async () =>
145159
{
146160
await taskList.InvokeSequentialAsync(fiber);
147161
await fiber.EnqueueAsync(() =>
148162
{
149-
Assert.AreEqual(1, counter);
163+
try
164+
{
165+
Assert.AreEqual(1, counter);
166+
}
167+
catch (Exception ex)
168+
{
169+
tcs.SetException(ex);
170+
}
150171
});
151-
mainLoop.Stop();
172+
tcs.SetResult(true);
152173
});
153-
mainLoop.Run();
174+
await tcs.Task;
154175
}
155176

156177
[Test]

0 commit comments

Comments
 (0)