diff --git a/src/Mvc/test/Mvc.FunctionalTests/TestingInfrastructureInheritanceTests.cs b/src/Mvc/test/Mvc.FunctionalTests/TestingInfrastructureInheritanceTests.cs index b50e3be4a43c..fb9b226c35a1 100644 --- a/src/Mvc/test/Mvc.FunctionalTests/TestingInfrastructureInheritanceTests.cs +++ b/src/Mvc/test/Mvc.FunctionalTests/TestingInfrastructureInheritanceTests.cs @@ -25,12 +25,13 @@ public void TestingInfrastructure_WebHost_WithWebHostBuilderRespectsCustomizatio // Assert Assert.Equal(new[] { "ConfigureWebHost", "Customization", "FurtherCustomization" }, factory.ConfigureWebHostCalled.ToArray()); - Assert.True(factory.CreateServerCalled); - Assert.False(factory.CreateWebHostBuilderCalled); + Assert.True(factory.CreateServerIWebHostBuilderCalled); + Assert.False(factory.CreateServerWithServiceProviderCalled); + Assert.True(factory.CreateWebHostBuilderCalled); // GetTestAssemblies is not called when reading content roots from MvcAppManifest Assert.False(factory.GetTestAssembliesCalled); Assert.True(factory.CreateHostBuilderCalled); - Assert.True(factory.CreateHostCalled); + Assert.False(factory.CreateHostCalled); } [Fact] @@ -48,7 +49,8 @@ public void TestingInfrastructure_GenericHost_WithWithHostBuilderRespectsCustomi Assert.False(factory.GetTestAssembliesCalled); Assert.True(factory.CreateHostBuilderCalled); Assert.True(factory.CreateHostCalled); - Assert.True(factory.CreateServerCalled); + Assert.False(factory.CreateServerIWebHostBuilderCalled); + Assert.True(factory.CreateServerWithServiceProviderCalled); Assert.False(factory.CreateWebHostBuilderCalled); } @@ -108,6 +110,23 @@ public void TestingInfrastructure_GenericHost_HostDispose() Assert.True(sink._asyncDisposed); } + [Fact] + public void TestingInfrastructure_WebApplicationBuilder_RespectsCustomizations() + { + // Arrange + using var factory = new CustomizedFactory(); + factory.StartServer(); + + // Assert + Assert.Equal(["ConfigureWebHost"], factory.ConfigureWebHostCalled.ToArray()); + Assert.False(factory.GetTestAssembliesCalled); + Assert.True(factory.CreateHostBuilderCalled); + Assert.True(factory.CreateHostCalled); + Assert.False(factory.CreateServerIWebHostBuilderCalled); + Assert.True(factory.CreateServerWithServiceProviderCalled); + Assert.True(factory.CreateWebHostBuilderCalled); + } + private static void ConfigureWebHostBuilder(IWebHostBuilder builder) => builder.UseStartup() .ConfigureServices(s => s.AddScoped()); @@ -131,7 +150,8 @@ private class CustomizedFactory : WebApplicationFactory ConfigureWebHostCalled { get; private set; } = new List(); @@ -143,13 +163,13 @@ protected override void ConfigureWebHost(IWebHostBuilder builder) protected override TestServer CreateServer(IWebHostBuilder builder) { - CreateServerCalled = true; + CreateServerIWebHostBuilderCalled = true; return base.CreateServer(builder); } protected override TestServer CreateServer(IServiceProvider serviceProvider) { - CreateServerCalled = true; + CreateServerWithServiceProviderCalled = true; return base.CreateServer(serviceProvider); } diff --git a/src/Mvc/test/WebSites/BasicWebSite/Program.cs b/src/Mvc/test/WebSites/BasicWebSite/Program.cs index a73dd5d7b4b4..c0e77a1028e0 100644 --- a/src/Mvc/test/WebSites/BasicWebSite/Program.cs +++ b/src/Mvc/test/WebSites/BasicWebSite/Program.cs @@ -9,21 +9,19 @@ public class Program { public static void Main(string[] args) { - using var host = CreateHostBuilder(args).Build(); + using var host = CreateWebHostBuilder(args).Build(); host.Run(); } - // This method now returns IHostBuilder and uses the new pattern with HostBuilder and ConfigureWebHost - public static IHostBuilder CreateHostBuilder(string[] args) => - new HostBuilder() - .ConfigureWebHost(webHostBuilder => - { - webHostBuilder - .UseContentRoot(Directory.GetCurrentDirectory()) - .UseStartup() - .UseKestrel() - .UseIISIntegration(); - }); + // Using WebHostBuilder to keep some test coverage in WebApplicationFactory tests + public static IWebHostBuilder CreateWebHostBuilder(string[] args) => +#pragma warning disable ASPDEPR004 // Type or member is obsolete + new WebHostBuilder() +#pragma warning restore ASPDEPR004 // Type or member is obsolete + .UseContentRoot(Directory.GetCurrentDirectory()) + .UseStartup() + .UseKestrel() + .UseIISIntegration(); } public class TestService