Skip to content

Commit

Permalink
PR: Add test code coverage for Host.StopAsync (#40875)
Browse files Browse the repository at this point in the history
* Add test code coverage for Host.StopAsync

Verifies StopAsync() doesn't throw CanceledException given a canceled token

Fix #40700

* implement using/dispose for hosts inside tests
  • Loading branch information
WernerMairl committed Dec 15, 2020
1 parent 1bfdab4 commit 5a3d44e
Showing 1 changed file with 19 additions and 7 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -20,13 +20,25 @@ namespace Microsoft.Extensions.Hosting.Tests
{
public partial class HostTests
{
[Fact]
public async Task StopAsyncWithCancellation()
{
var builder = new HostBuilder();
using var host = builder.Build();
await host.StartAsync();
CancellationTokenSource cts = new CancellationTokenSource();
cts.Cancel();
Assert.True(cts.Token.IsCancellationRequested);
await host.StopAsync(cts.Token);
}

[Fact]
[ActiveIssue("https://github.com/dotnet/runtime/issues/34580", TestPlatforms.Windows, TargetFrameworkMonikers.Netcoreapp, TestRuntimes.Mono)]
public void CreateDefaultBuilder_IncludesContentRootByDefault()
{
var expected = Directory.GetCurrentDirectory();
var builder = Host.CreateDefaultBuilder();
var host = builder.Build();
using var host = builder.Build();
var config = host.Services.GetRequiredService<IConfiguration>();
Assert.Equal(expected, config["ContentRoot"]);
var env = host.Services.GetRequiredService<IHostEnvironment>();
Expand All @@ -39,7 +51,7 @@ public void CreateDefaultBuilder_IncludesCommandLineArguments()
{
var expected = Directory.GetParent(Directory.GetCurrentDirectory()).FullName; // It must exist
var builder = Host.CreateDefaultBuilder(new string[] { "--contentroot", expected });
var host = builder.Build();
using var host = builder.Build();
var env = host.Services.GetRequiredService<IHostEnvironment>();
Assert.Equal(expected, env.ContentRootPath);
}
Expand All @@ -49,7 +61,7 @@ public void CreateDefaultBuilder_IncludesCommandLineArguments()
public void CreateDefaultBuilder_RegistersEventSourceLogger()
{
var listener = new TestEventListener();
var host = Host.CreateDefaultBuilder()
using var host = Host.CreateDefaultBuilder()
.Build();

var logger = host.Services.GetRequiredService<ILogger<HostTests>>();
Expand Down Expand Up @@ -90,7 +102,7 @@ public void CreateDefaultBuilder_EnablesActivityTracking()
}
});
var loggerProvider = new ScopeDelegateLoggerProvider(logger);
var host = Host.CreateDefaultBuilder()
using var host = Host.CreateDefaultBuilder()
.ConfigureLogging(logging =>
{
logging.AddProvider(loggerProvider);
Expand All @@ -104,7 +116,7 @@ public void CreateDefaultBuilder_EnablesActivityTracking()
[ActiveIssue("https://github.com/dotnet/runtime/issues/34580", TestPlatforms.Windows, TargetFrameworkMonikers.Netcoreapp, TestRuntimes.Mono)]
public void CreateDefaultBuilder_EnablesScopeValidation()
{
var host = Host.CreateDefaultBuilder()
using var host = Host.CreateDefaultBuilder()
.UseEnvironment(Environments.Development)
.ConfigureServices(serices =>
{
Expand Down Expand Up @@ -145,7 +157,7 @@ string SaveRandomConfig()

var dynamicConfigMessage1 = SaveRandomConfig();

var host = Host.CreateDefaultBuilder()
using var host = Host.CreateDefaultBuilder()
.UseContentRoot(Path.GetDirectoryName(appSettingsPath))
.ConfigureHostConfiguration(builder =>
{
Expand Down Expand Up @@ -179,7 +191,7 @@ string SaveRandomConfig()

var dynamicConfigMessage1 = SaveRandomConfig();

var host = Host.CreateDefaultBuilder()
using var host = Host.CreateDefaultBuilder()
.UseContentRoot(Path.GetDirectoryName(appSettingsPath))
.ConfigureHostConfiguration(builder =>
{
Expand Down

0 comments on commit 5a3d44e

Please sign in to comment.