Skip to content

Commit a0f170d

Browse files
Update to xunit v3
Update to xunit v3. Resolves #2439.
1 parent f5cbe89 commit a0f170d

File tree

131 files changed

+273
-240
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

131 files changed

+273
-240
lines changed

Directory.Packages.props

+2-1
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,8 @@
4747
<PackageVersion Include="System.Threading.Tasks.Extensions" Version="4.5.4" />
4848
<PackageVersion Include="System.Text.Json" Version="9.0.0" />
4949
<PackageVersion Include="System.ValueTuple" Version="4.5.0" />
50-
<PackageVersion Include="xunit" Version="2.9.3" />
5150
<PackageVersion Include="xunit.runner.visualstudio" Version="3.0.0" />
51+
<PackageVersion Include="xunit.v3" Version="1.0.1" />
52+
<PackageVersion Include="xunit.v3.assert" Version="1.0.1" />
5253
</ItemGroup>
5354
</Project>

build.cake

+1-1
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ var configuration = Argument<string>("configuration", "Release");
99
// EXTERNAL NUGET TOOLS
1010
//////////////////////////////////////////////////////////////////////
1111

12-
#Tool "xunit.runner.console&version=2.9.3"
12+
#Tool "xunit.v3.runner.console&version=1.0.1"
1313
#Tool "dotnet-stryker&version=4.5.0"
1414

1515
//////////////////////////////////////////////////////////////////////

eng/Test.targets

+1-1
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,8 @@
1717
<PackageReference Include="Microsoft.NET.Test.Sdk" />
1818
<PackageReference Include="NSubstitute" />
1919
<PackageReference Include="ReportGenerator" PrivateAssets="all" />
20-
<PackageReference Include="xunit" />
2120
<PackageReference Include="xunit.runner.visualstudio" PrivateAssets="all" />
21+
<PackageReference Include="xunit.v3" />
2222
</ItemGroup>
2323

2424
<PropertyGroup Condition="$([MSBuild]::GetTargetFrameworkIdentifier('$(TargetFramework)')) != '.NETFramework'">

src/Snippets/Snippets.csproj

+1-1
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
<ItemGroup>
1919
<PackageReference Include="Microsoft.Extensions.Http.Resilience" />
2020
<PackageReference Include="Microsoft.Extensions.Logging.Console" />
21-
<PackageReference Include="xunit" />
21+
<PackageReference Include="xunit.v3.assert" />
2222
</ItemGroup>
2323

2424
<ItemGroup>

test/Polly.Core.Tests/CircuitBreaker/CircuitBreakerManualControlTests.cs

+5-5
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ public void Ctor_Isolated(bool isolated)
2929
[Theory]
3030
public async Task IsolateAsync_NotInitialized_Ok(bool closedAfter)
3131
{
32-
var cancellationToken = CancellationToken.None;
32+
var cancellationToken = TestContext.Current.CancellationToken;
3333
var control = new CircuitBreakerManualControl();
3434
await control.IsolateAsync(cancellationToken);
3535
if (closedAfter)
@@ -57,7 +57,7 @@ public async Task ResetAsync_NotInitialized_Ok()
5757
var control = new CircuitBreakerManualControl();
5858

5959
await control
60-
.Invoking(c => c.CloseAsync())
60+
.Invoking(c => c.CloseAsync(TestContext.Current.CancellationToken))
6161
.Should()
6262
.NotThrowAsync();
6363
}
@@ -66,7 +66,7 @@ await control
6666
public async Task Initialize_Twice_Ok()
6767
{
6868
int called = 0;
69-
var cancellationToken = CancellationToken.None;
69+
var cancellationToken = TestContext.Current.CancellationToken;
7070
var control = new CircuitBreakerManualControl();
7171
control.Initialize(_ => Task.CompletedTask, _ => Task.CompletedTask);
7272
control.Initialize(_ => { called++; return Task.CompletedTask; }, _ => { called++; return Task.CompletedTask; });
@@ -81,7 +81,7 @@ public async Task Initialize_Twice_Ok()
8181
public async Task Initialize_DisposeRegistration_ShuldBeCancelled()
8282
{
8383
int called = 0;
84-
var cancellationToken = CancellationToken.None;
84+
var cancellationToken = TestContext.Current.CancellationToken;
8585
var control = new CircuitBreakerManualControl();
8686
var reg = control.Initialize(_ => { called++; return Task.CompletedTask; }, _ => { called++; return Task.CompletedTask; });
8787

@@ -99,7 +99,7 @@ public async Task Initialize_DisposeRegistration_ShuldBeCancelled()
9999
[Fact]
100100
public async Task Initialize_Ok()
101101
{
102-
var cancellationToken = CancellationToken.None;
102+
var cancellationToken = TestContext.Current.CancellationToken;
103103
var control = new CircuitBreakerManualControl();
104104
var isolateCalled = false;
105105
var resetCalled = false;

test/Polly.Core.Tests/CircuitBreaker/CircuitBreakerOptionsTests.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ public class CircuitBreakerOptionsTests
1010
public async Task ShouldHandle_EnsureDefaults()
1111
{
1212
var options = new CircuitBreakerStrategyOptions();
13-
var context = ResilienceContextPool.Shared.Get();
13+
var context = ResilienceContextPool.Shared.Get(TestContext.Current.CancellationToken);
1414

1515
(await options.ShouldHandle(new CircuitBreakerPredicateArguments<object>(context, Outcome.FromResult<object>("dummy")))).Should().Be(false);
1616
(await options.ShouldHandle(new CircuitBreakerPredicateArguments<object>(context, Outcome.FromException<object>(new OperationCanceledException())))).Should().Be(false);

test/Polly.Core.Tests/CircuitBreaker/CircuitBreakerPredicateArgumentsTests.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ public static class CircuitBreakerPredicateArgumentsTests
88
public static void Ctor_Ok()
99
{
1010
var args = new CircuitBreakerPredicateArguments<int>(
11-
ResilienceContextPool.Shared.Get(CancellationToken.None),
11+
ResilienceContextPool.Shared.Get(TestContext.Current.CancellationToken),
1212
Outcome.FromResult(1));
1313

1414
args.Context.Should().NotBeNull();

test/Polly.Core.Tests/CircuitBreaker/CircuitBreakerResiliencePipelineBuilderTests.cs

+3-3
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ public void AddCircuitBreaker_Validation()
6464
[Fact]
6565
public void AddCircuitBreaker_IntegrationTest()
6666
{
67-
var cancellationToken = CancellationToken.None;
67+
var cancellationToken = TestContext.Current.CancellationToken;
6868
int opened = 0;
6969
int closed = 0;
7070
int halfOpened = 0;
@@ -127,7 +127,7 @@ public void AddCircuitBreaker_IntegrationTest()
127127
[Fact]
128128
public void AddCircuitBreaker_IntegrationTest_WithBreakDurationGenerator()
129129
{
130-
var cancellationToken = CancellationToken.None;
130+
var cancellationToken = TestContext.Current.CancellationToken;
131131
int opened = 0;
132132
int closed = 0;
133133
int halfOpened = 0;
@@ -191,7 +191,7 @@ public void AddCircuitBreaker_IntegrationTest_WithBreakDurationGenerator()
191191
[Fact]
192192
public async Task AddCircuitBreakers_WithIsolatedManualControl_ShouldBeIsolated()
193193
{
194-
var cancellationToken = CancellationToken.None;
194+
var cancellationToken = TestContext.Current.CancellationToken;
195195
var manualControl = new CircuitBreakerManualControl();
196196
await manualControl.IsolateAsync(cancellationToken);
197197

test/Polly.Core.Tests/CircuitBreaker/CircuitBreakerResilienceStrategyTests.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ public CircuitBreakerResilienceStrategyTests()
3030
null);
3131
}
3232

33-
private static CancellationToken CancellationToken => CancellationToken.None;
33+
private static CancellationToken CancellationToken => TestContext.Current.CancellationToken;
3434

3535
[Fact]
3636
public void Ctor_Ok() =>

test/Polly.Core.Tests/CircuitBreaker/CircuitBreakerStateProviderTests.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ public async Task ResetAsync_NotInitialized_Throws()
2626
var control = new CircuitBreakerManualControl();
2727

2828
await control
29-
.Invoking(c => c.CloseAsync(CancellationToken.None))
29+
.Invoking(c => c.CloseAsync(TestContext.Current.CancellationToken))
3030
.Should()
3131
.NotThrowAsync<InvalidOperationException>();
3232
}

test/Polly.Core.Tests/CircuitBreaker/Controller/CircuitStateControllerTests.cs

+20-20
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ public void Ctor_EnsureDefaults()
2626
public async Task IsolateAsync_Ok()
2727
{
2828
// arrange
29-
var cancellationToken = CancellationToken.None;
29+
var cancellationToken = TestContext.Current.CancellationToken;
3030
bool called = false;
3131
_options.OnOpened = args =>
3232
{
@@ -69,7 +69,7 @@ public async Task IsolateAsync_Ok()
6969
public async Task BreakAsync_Ok()
7070
{
7171
// arrange
72-
var cancellationToken = CancellationToken.None;
72+
var cancellationToken = TestContext.Current.CancellationToken;
7373
bool called = false;
7474
_options.OnClosed = args =>
7575
{
@@ -102,7 +102,7 @@ public async Task BreakAsync_Ok()
102102
[Fact]
103103
public async Task Disposed_EnsureThrows()
104104
{
105-
var context = ResilienceContextPool.Shared.Get();
105+
var context = ResilienceContextPool.Shared.Get(TestContext.Current.CancellationToken);
106106

107107
var controller = CreateController();
108108
controller.Dispose();
@@ -121,7 +121,7 @@ public async Task Disposed_EnsureThrows()
121121
[Fact]
122122
public async Task OnActionPreExecute_CircuitOpenedByValue()
123123
{
124-
var context = ResilienceContextPool.Shared.Get();
124+
var context = ResilienceContextPool.Shared.Get(TestContext.Current.CancellationToken);
125125
using var controller = CreateController();
126126

127127
await OpenCircuit(controller, Outcome.FromResult(99));
@@ -138,7 +138,7 @@ public async Task OnActionPreExecute_CircuitOpenedByValue()
138138
public async Task OnActionPreExecute_CircuitOpened_EnsureExceptionStackTraceDoesNotGrow(bool innerException)
139139
{
140140
var stacks = new List<string>();
141-
var context = ResilienceContextPool.Shared.Get();
141+
var context = ResilienceContextPool.Shared.Get(TestContext.Current.CancellationToken);
142142
using var controller = CreateController();
143143

144144
await OpenCircuit(
@@ -175,7 +175,7 @@ await OpenCircuit(
175175
[Fact]
176176
public async Task HalfOpen_EnsureBreakDuration()
177177
{
178-
var context = ResilienceContextPool.Shared.Get();
178+
var context = ResilienceContextPool.Shared.Get(TestContext.Current.CancellationToken);
179179
using var controller = CreateController();
180180

181181
await TransitionToState(controller, CircuitState.HalfOpen, context);
@@ -187,7 +187,7 @@ public async Task HalfOpen_EnsureBreakDuration()
187187
[Theory]
188188
public async Task HalfOpen_EnsureCorrectStateTransitionAfterExecution(bool success)
189189
{
190-
var context = ResilienceContextPool.Shared.Get();
190+
var context = ResilienceContextPool.Shared.Get(TestContext.Current.CancellationToken);
191191
using var controller = CreateController();
192192

193193
await TransitionToState(controller, CircuitState.HalfOpen, context);
@@ -213,7 +213,7 @@ public async Task HalfOpen_EnsureCorrectStateTransitionAfterExecution(bool succe
213213
[Fact]
214214
public async Task OnActionPreExecute_CircuitOpenedByException()
215215
{
216-
var context = ResilienceContextPool.Shared.Get();
216+
var context = ResilienceContextPool.Shared.Get(TestContext.Current.CancellationToken);
217217
using var controller = CreateController();
218218

219219
await OpenCircuit(controller, Outcome.FromException<int>(new InvalidOperationException()));
@@ -227,7 +227,7 @@ public async Task OnActionPreExecute_CircuitOpenedByException()
227227
public async Task OnActionFailure_EnsureLock()
228228
{
229229
// arrange
230-
var cancellationToken = CancellationToken.None;
230+
var cancellationToken = TestContext.Current.CancellationToken;
231231
var context = ResilienceContextPool.Shared.Get(cancellationToken);
232232

233233
using var executing = new ManualResetEvent(false);
@@ -261,7 +261,7 @@ public async Task OnActionFailure_EnsureLock()
261261
public async Task OnActionPreExecute_HalfOpen()
262262
{
263263
// arrange
264-
var context = ResilienceContextPool.Shared.Get();
264+
var context = ResilienceContextPool.Shared.Get(TestContext.Current.CancellationToken);
265265
var called = false;
266266
_options.OnHalfOpened = _ =>
267267
{
@@ -293,7 +293,7 @@ public async Task OnActionPreExecute_HalfOpen()
293293
public async Task OnActionSuccess_EnsureCorrectBehavior(CircuitState state, CircuitState expectedState)
294294
{
295295
// arrange
296-
var context = ResilienceContextPool.Shared.Get();
296+
var context = ResilienceContextPool.Shared.Get(TestContext.Current.CancellationToken);
297297
var called = false;
298298
_options.OnClosed = args =>
299299
{
@@ -329,7 +329,7 @@ public async Task OnActionSuccess_EnsureCorrectBehavior(CircuitState state, Circ
329329
public async Task OnActionFailureAsync_EnsureCorrectBehavior(CircuitState state, CircuitState expectedState, bool shouldBreak)
330330
{
331331
// arrange
332-
var context = ResilienceContextPool.Shared.Get();
332+
var context = ResilienceContextPool.Shared.Get(TestContext.Current.CancellationToken);
333333
var called = false;
334334
_options.OnOpened = args =>
335335
{
@@ -370,7 +370,7 @@ public async Task OnActionFailureAsync_EnsureCorrectBehavior(CircuitState state,
370370
public async Task OnActionFailureAsync_EnsureBreakDurationGeneration()
371371
{
372372
// arrange
373-
var context = ResilienceContextPool.Shared.Get();
373+
var context = ResilienceContextPool.Shared.Get(TestContext.Current.CancellationToken);
374374
_options.BreakDurationGenerator = static args =>
375375
{
376376
args.FailureCount.Should().Be(1);
@@ -402,7 +402,7 @@ public async Task OnActionFailureAsync_EnsureBreakDurationGeneration()
402402
public async Task BreakDurationGenerator_EnsureHalfOpenAttempts()
403403
{
404404
// arrange
405-
var context = ResilienceContextPool.Shared.Get();
405+
var context = ResilienceContextPool.Shared.Get(TestContext.Current.CancellationToken);
406406
var halfOpenAttempts = new List<int>();
407407

408408
_options.BreakDurationGenerator = args =>
@@ -440,7 +440,7 @@ public async Task BreakDurationGenerator_EnsureHalfOpenAttempts()
440440
public async Task OnActionFailureAsync_EnsureBreakDurationNotOverflow(bool overflow)
441441
{
442442
// arrange
443-
var context = ResilienceContextPool.Shared.Get();
443+
var context = ResilienceContextPool.Shared.Get(TestContext.Current.CancellationToken);
444444
using var controller = CreateController();
445445
var shouldBreak = true;
446446
await TransitionToState(controller, CircuitState.HalfOpen, context);
@@ -475,7 +475,7 @@ public async Task OnActionFailureAsync_EnsureBreakDurationNotOverflow(bool overf
475475
public async Task OnActionFailureAsync_VoidResult_EnsureBreakingExceptionNotSet()
476476
{
477477
// arrange
478-
var context = ResilienceContextPool.Shared.Get();
478+
var context = ResilienceContextPool.Shared.Get(TestContext.Current.CancellationToken);
479479
using var controller = CreateController();
480480
bool shouldBreak = true;
481481
await TransitionToState(controller, CircuitState.Open, context);
@@ -497,7 +497,7 @@ public async Task OnActionFailureAsync_VoidResult_EnsureBreakingExceptionNotSet(
497497
[Fact]
498498
public async Task Flow_Closed_HalfOpen_Closed()
499499
{
500-
var context = ResilienceContextPool.Shared.Get();
500+
var context = ResilienceContextPool.Shared.Get(TestContext.Current.CancellationToken);
501501
using var controller = CreateController();
502502

503503
await TransitionToState(controller, CircuitState.HalfOpen, context);
@@ -512,7 +512,7 @@ public async Task Flow_Closed_HalfOpen_Closed()
512512
[Fact]
513513
public async Task Flow_Closed_HalfOpen_Open_HalfOpen_Closed()
514514
{
515-
var cancellationToken = CancellationToken.None;
515+
var cancellationToken = TestContext.Current.CancellationToken;
516516
var context = ResilienceContextPool.Shared.Get(cancellationToken);
517517

518518
using var controller = CreateController();
@@ -550,7 +550,7 @@ public async Task Flow_Closed_HalfOpen_Open_HalfOpen_Closed()
550550
[Fact]
551551
public async Task ExecuteScheduledTask_Async_Ok()
552552
{
553-
var cancellationToken = CancellationToken.None;
553+
var cancellationToken = TestContext.Current.CancellationToken;
554554
var context = ResilienceContextPool.Shared.Get(cancellationToken);
555555

556556
var source = new TaskCompletionSource<string>();
@@ -605,7 +605,7 @@ private async Task OpenCircuit(CircuitStateController<int> controller, Outcome<i
605605

606606
await controller.OnHandledOutcomeAsync(
607607
outcome ?? Outcome.FromResult(10),
608-
ResilienceContextPool.Shared.Get().Initialize<int>(true));
608+
ResilienceContextPool.Shared.Get(TestContext.Current.CancellationToken).Initialize<int>(true));
609609
}
610610

611611
private void AdvanceTime(TimeSpan timespan) => _timeProvider.Advance(timespan);

test/Polly.Core.Tests/CircuitBreaker/Controller/ScheduledTaskExecutorTests.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ namespace Polly.Core.Tests.CircuitBreaker.Controller;
44

55
public class ScheduledTaskExecutorTests
66
{
7-
private static CancellationToken CancellationToken => CancellationToken.None;
7+
private static CancellationToken CancellationToken => TestContext.Current.CancellationToken;
88

99
[Fact]
1010
public async Task ScheduleTask_Success_EnsureExecuted()

test/Polly.Core.Tests/CircuitBreaker/OnCircuitClosedArgumentsTests.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ public static class OnCircuitClosedArgumentsTests
88
public static void Ctor_Ok()
99
{
1010
// Arrange
11-
var context = ResilienceContextPool.Shared.Get();
11+
var context = ResilienceContextPool.Shared.Get(TestContext.Current.CancellationToken);
1212

1313
// Act
1414
var args = new OnCircuitClosedArguments<int>(context, Outcome.FromResult(1), true);

test/Polly.Core.Tests/CircuitBreaker/OnCircuitHalfOpenedArgumentsTests.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ public static class OnCircuitHalfOpenedArgumentsTests
88
public static void Ctor_Ok()
99
{
1010
// Arrange
11-
var context = ResilienceContextPool.Shared.Get();
11+
var context = ResilienceContextPool.Shared.Get(TestContext.Current.CancellationToken);
1212

1313
// Act
1414
var target = new OnCircuitHalfOpenedArguments(context);

test/Polly.Core.Tests/CircuitBreaker/OnCircuitOpenedArgumentsTests.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ public static class OnCircuitOpenedArgumentsTests
88
public static void Ctor_Ok()
99
{
1010
// Arrange
11-
var context = ResilienceContextPool.Shared.Get();
11+
var context = ResilienceContextPool.Shared.Get(TestContext.Current.CancellationToken);
1212

1313
// Act
1414
var args = new OnCircuitOpenedArguments<int>(context, Outcome.FromResult(1), TimeSpan.FromSeconds(2), true);

test/Polly.Core.Tests/Fallback/FallbackHandlerTests.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ public class FallbackHandlerTests
77
public async Task GenerateAction_Generic_Ok()
88
{
99
var handler = FallbackHelper.CreateHandler(_ => true, () => Outcome.FromResult("secondary"));
10-
var context = ResilienceContextPool.Shared.Get();
10+
var context = ResilienceContextPool.Shared.Get(TestContext.Current.CancellationToken);
1111
var outcome = await handler.GetFallbackOutcomeAsync(new FallbackActionArguments<string>(context, Outcome.FromResult("primary")))!;
1212

1313
outcome.Result.Should().Be("secondary");

0 commit comments

Comments
 (0)