Skip to content

Commit fd73c41

Browse files
committed
Improve async code handling in tests
1 parent c472936 commit fd73c41

File tree

2 files changed

+11
-13
lines changed

2 files changed

+11
-13
lines changed

src/Ninject.Web.AspNetCore.Test/Unit/DisposalManagerConcurrencyTest.cs

Lines changed: 9 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ namespace Ninject.Web.AspNetCore.Test.Unit
1111
public class DisposalManagerConcurrencyTest
1212
{
1313
[Fact]
14-
public void CreateArea_FromDifferentConcurrentThreads_ShouldCreateSeparateRootAreas()
14+
public async Task CreateArea_FromDifferentConcurrentThreads_ShouldCreateSeparateRootAreas()
1515
{
1616
var disposalManager = new DisposalManager(new FakeActivationCacheAccessor(Enumerable.Empty<object>()));
1717
var barrier = new Barrier(2);
@@ -31,15 +31,15 @@ public void CreateArea_FromDifferentConcurrentThreads_ShouldCreateSeparateRootAr
3131
return identifier;
3232
})).ToList();
3333

34-
var results = tasks.Select(t => t.Result).ToList();
34+
var results = (await Task.WhenAll(tasks)).ToList();
3535

3636
results.Count.Should().Be(2);
3737
results.All(r => r.StartsWith("OrderedAggregateDisposalArea")).Should().BeTrue();
3838
results[0].Should().NotBe(results[1]);
3939
}
4040

4141
[Fact]
42-
public void ServiceDisposal_FromDifferentConcurrentThreads_ShouldDisposeServicesSeparately()
42+
public async Task ServiceDisposal_FromDifferentConcurrentThreads_ShouldDisposeServicesSeparately()
4343
{
4444
var taskCount = 7;
4545
var serviceCount = 100;
@@ -52,18 +52,16 @@ public void ServiceDisposal_FromDifferentConcurrentThreads_ShouldDisposeServices
5252
var tasks = Enumerable.Range(0, taskCount).Select(index => Task.Run(() =>
5353
{
5454
barrier.SignalAndWait();
55-
using (var area = disposalManager.CreateArea())
56-
{
57-
barrier.SignalAndWait();
55+
using var area = disposalManager.CreateArea();
56+
barrier.SignalAndWait();
5857

59-
foreach (var r in references.Where((_, referenceIndex) => referenceIndex % (taskCount + 1) == index))
60-
{
61-
disposalManager.RemoveInstance(new Activation.InstanceReference { Instance = r });
62-
}
58+
foreach (var r in references.Where((_, referenceIndex) => referenceIndex % (taskCount + 1) == index))
59+
{
60+
disposalManager.RemoveInstance(new Activation.InstanceReference { Instance = r });
6361
}
6462
})).ToList();
6563

66-
Task.WaitAll(tasks.ToArray());
64+
await Task.WhenAll(tasks.ToArray());
6765

6866
references.Where((_, index) => index % (taskCount + 1) < taskCount).All(r => r.IsDisposed).Should().BeTrue();
6967
references.Where((_, index) => index % (taskCount + 1) == taskCount).All(r => r.IsDisposed).Should().BeFalse();

src/Ninject.Web.AspNetCore.Test/Unit/RequestScopeMiddlewareTest.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ namespace Ninject.Web.AspNetCore.Test.Unit
1010
public class RequestScopeMiddlewareTest
1111
{
1212
[Fact]
13-
public void Middleware_WhenInvoked_CreatesAndDestroysRequestScope()
13+
public async Task Middleware_WhenInvoked_CreatesAndDestroysRequestScope()
1414
{
1515
var callCount = 0;
1616
var middleware = new RequestScopeMiddleware(_ =>
@@ -25,7 +25,7 @@ public void Middleware_WhenInvoked_CreatesAndDestroysRequestScope()
2525
var httpContextMock = new Mock<HttpContext>();
2626

2727
RequestScope.Current.Should().BeNull();
28-
middleware.InvokeAsync(httpContextMock.Object).Wait();
28+
await middleware.InvokeAsync(httpContextMock.Object);
2929
callCount.Should().Be(1);
3030
RequestScope.Current.Should().BeNull();
3131
}

0 commit comments

Comments
 (0)