From c7407cae529d24fd85f4c1dd50422bd41f0d37e1 Mon Sep 17 00:00:00 2001 From: Stephen Halter Date: Thu, 27 Jan 2022 21:25:52 -0800 Subject: [PATCH] Make UseUrls() override default hosting config --- .../src/WebApplicationBuilder.cs | 21 ++++++++++++--- .../WebApplicationTests.cs | 27 +++++++++++++++++++ 2 files changed, 44 insertions(+), 4 deletions(-) diff --git a/src/DefaultBuilder/src/WebApplicationBuilder.cs b/src/DefaultBuilder/src/WebApplicationBuilder.cs index 19e8c0661c84..870b2f51f679 100644 --- a/src/DefaultBuilder/src/WebApplicationBuilder.cs +++ b/src/DefaultBuilder/src/WebApplicationBuilder.cs @@ -22,6 +22,7 @@ public sealed class WebApplicationBuilder private readonly BootstrapHostBuilder _bootstrapHostBuilder; private readonly WebApplicationServiceCollection _services = new(); private readonly List> _hostConfigurationValues; + private readonly ConfigurationManager _hostConfigurationManager = new(); private WebApplication? _builtApplication; @@ -76,6 +77,8 @@ internal WebApplicationBuilder(WebApplicationOptions options, Action + { + bootstrapBuilder.ConfigureHostConfiguration(configBuilder => + { + configBuilder.AddInMemoryCollection(new Dictionary + { + [WebHostDefaults.ServerUrlsKey] = "http://localhost:5000", + }); + }); + }); + + builder.WebHost.UseUrls("http://localhost:5001"); + + var urls = new List(); + var server = new MockAddressesServer(urls); + builder.Services.AddSingleton(server); + await using var app = builder.Build(); + + await app.StartAsync(); + + var url = Assert.Single(urls); + Assert.Equal("http://localhost:5001", url); + } + [Fact] public async Task WebApplicationUrls_ThrowsInvalidOperationExceptionIfThereIsNoIServerAddressesFeature() {