Skip to content

Commit ddd11e9

Browse files
committed
fix: remove CancelAfter extension methods
1 parent 1bc6cc3 commit ddd11e9

File tree

4 files changed

+25
-319
lines changed

4 files changed

+25
-319
lines changed

src/TimeProviderExtensions/System.Threading/TimeProviderCancellationTokenSourceExtensions.cs

Lines changed: 0 additions & 155 deletions
This file was deleted.

test/TimeProviderExtensions.Tests/ManualTimeProviderCancelAfter.cs.cs

Lines changed: 17 additions & 73 deletions
Original file line numberDiff line numberDiff line change
@@ -2,107 +2,51 @@ namespace TimeProviderExtensions;
22

33
public class ManualTimeProviderCancelAfter
44
{
5-
internal const uint MaxSupportedTimeout = 0xfffffffe;
6-
7-
[Theory]
8-
[InlineData(-2)]
9-
[InlineData(MaxSupportedTimeout + 1)]
10-
public void CancelAfter_throws_ArgumentOutOfRangeException(double timespanInMilliseconds)
11-
{
12-
using var cts = new CancellationTokenSource();
13-
var sut = new ManualTimeProvider();
14-
15-
var throws = () => cts.CancelAfter(TimeSpan.FromMilliseconds(timespanInMilliseconds), sut);
16-
17-
throws.Should().ThrowExactly<ArgumentOutOfRangeException>();
18-
}
19-
20-
[Fact]
21-
public void CancelAfter_throws_ArgumentNullException()
22-
{
23-
using var cts = new CancellationTokenSource();
24-
25-
var throws = () => cts.CancelAfter(TimeSpan.Zero, default(ManualTimeProvider)!);
26-
27-
throws.Should().ThrowExactly<ArgumentNullException>();
28-
}
29-
30-
[Fact]
31-
public void CancelAfter_does_nothing_when_cts_already_canceled()
32-
{
33-
using var cts = new CancellationTokenSource();
34-
var sut = new ManualTimeProvider();
35-
36-
cts.Cancel();
37-
cts.CancelAfter(TimeSpan.Zero, sut);
38-
39-
cts.IsCancellationRequested.Should().BeTrue();
40-
}
41-
42-
[Fact]
43-
public void CancelAfter_does_nothing_when_delay_eq_zero()
44-
{
45-
using var cts = new CancellationTokenSource();
46-
var sut = new ManualTimeProvider();
47-
48-
cts.CancelAfter(TimeSpan.Zero, sut);
49-
50-
cts.IsCancellationRequested.Should().BeFalse();
51-
}
52-
53-
[Fact]
54-
public void CancelAfter_does_nothing_when_delay_infinite()
55-
{
56-
using var cts = new CancellationTokenSource();
57-
var sut = new ManualTimeProvider();
58-
59-
cts.CancelAfter(TimeSpan.FromMilliseconds(-1), sut);
60-
61-
cts.IsCancellationRequested.Should().BeFalse();
62-
}
63-
645
[Fact]
656
public void CancelAfter_cancels()
667
{
67-
using var cts = new CancellationTokenSource();
68-
var sut = new ManualTimeProvider();
698
var delay = TimeSpan.FromMilliseconds(42);
70-
71-
cts.CancelAfter(delay, sut);
9+
var sut = new ManualTimeProvider();
10+
using var cts = sut.CreateCancellationTokenSource(delay);
7211

7312
sut.ForwardTime(delay);
13+
7414
cts.IsCancellationRequested.Should().BeTrue();
7515
}
7616

17+
#if NET8_0_OR_GREATER
18+
// The following two scenarios are only supported by .NET 8 and up.
7719
[Fact]
7820
public void CancelAfter_reschedule_longer_cancel()
7921
{
80-
using var cts = new CancellationTokenSource();
81-
var sut = new ManualTimeProvider();
8222
var initialDelay = TimeSpan.FromMilliseconds(100);
8323
var rescheduledDelay = TimeSpan.FromMilliseconds(1000);
24+
var sut = new ManualTimeProvider();
25+
using var cts = sut.CreateCancellationTokenSource(initialDelay);
8426

85-
cts.CancelAfter(initialDelay, sut);
86-
cts.CancelAfter(rescheduledDelay, sut);
27+
cts.CancelAfter(rescheduledDelay);
8728

8829
sut.ForwardTime(initialDelay);
8930
cts.IsCancellationRequested.Should().BeFalse();
90-
sut.ForwardTime(rescheduledDelay);
31+
32+
sut.ForwardTime(rescheduledDelay - initialDelay);
9133
cts.IsCancellationRequested.Should().BeTrue();
9234
}
9335

9436
[Fact]
95-
public void CancelAfter_reschedule_shorter_cancel()
37+
public async void CancelAfter_reschedule_shorter_cancel()
9638
{
97-
using var cts = new CancellationTokenSource();
98-
var sut = new ManualTimeProvider();
9939
var initialDelay = TimeSpan.FromMilliseconds(1000);
10040
var rescheduledDelay = TimeSpan.FromMilliseconds(100);
41+
var sut = new ManualTimeProvider();
42+
using var cts = sut.CreateCancellationTokenSource(initialDelay);
10143

102-
cts.CancelAfter(initialDelay, sut);
103-
cts.CancelAfter(rescheduledDelay, sut);
44+
cts.CancelAfter(rescheduledDelay);
10445

10546
sut.ForwardTime(rescheduledDelay);
47+
await Task.Delay(1000);
48+
10649
cts.IsCancellationRequested.Should().BeTrue();
10750
}
51+
#endif
10852
}

test/TimeProviderExtensions.Tests/ManualTimeProviderTests.cs

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -25,18 +25,19 @@ public void SetUtcNow_updates_UtcNow()
2525
}
2626

2727
[Fact]
28-
public void Delay_callbacks_runs_synchronously()
28+
public async Task Delay_callbacks_runs_synchronously()
2929
{
3030
// arrange
3131
var sut = new ManualTimeProvider();
3232
var callbackCount = 0;
33-
_ = Continuation(sut, () => callbackCount++);
33+
var continuationTask = Continuation(sut, () => callbackCount++);
3434

3535
// act
3636
sut.ForwardTime(TimeSpan.FromSeconds(10));
3737

3838
// assert
3939
callbackCount.Should().Be(1);
40+
await continuationTask;
4041

4142
static async Task Continuation(TimeProvider timeProvider, Action callback)
4243
{
@@ -46,24 +47,26 @@ static async Task Continuation(TimeProvider timeProvider, Action callback)
4647
}
4748

4849
[Fact]
49-
public void WaitAsync_callbacks_runs_synchronously()
50+
public async Task WaitAsync_callbacks_runs_synchronously()
5051
{
5152
// arrange
5253
var sut = new ManualTimeProvider();
5354
var callbackCount = 0;
54-
_ = Continuation(sut, () => callbackCount++);
55+
var continuationTask = Continuation(sut, () => callbackCount++);
5556

5657
// act
5758
sut.ForwardTime(TimeSpan.FromSeconds(10));
5859

5960
// assert
6061
callbackCount.Should().Be(1);
62+
await continuationTask;
6163

6264
static async Task Continuation(TimeProvider timeProvider, Action callback)
6365
{
6466
try
6567
{
66-
await Task.Delay(TimeSpan.FromDays(1)).WaitAsync(TimeSpan.FromSeconds(10), timeProvider);
68+
await Task.Delay(TimeSpan.FromDays(1))
69+
.WaitAsync(TimeSpan.FromSeconds(10), timeProvider);
6770
}
6871
catch (TimeoutException)
6972
{

0 commit comments

Comments
 (0)