diff --git a/src/Microsoft.AspNet.TestHost/TestServer.cs b/src/Microsoft.AspNet.TestHost/TestServer.cs index 38da4fd213..6d6d4ef4c9 100644 --- a/src/Microsoft.AspNet.TestHost/TestServer.cs +++ b/src/Microsoft.AspNet.TestHost/TestServer.cs @@ -29,6 +29,14 @@ namespace Microsoft.AspNet.TestHost public Uri BaseAddress { get; set; } = new Uri("http://localhost/"); + public IWebApplication Application + { + get + { + return _appInstance; + } + } + IFeatureCollection IServer.Features { get; } public HttpMessageHandler CreateHandler() diff --git a/test/Microsoft.AspNet.TestHost.Tests/TestServerTests.cs b/test/Microsoft.AspNet.TestHost.Tests/TestServerTests.cs index 92fdc85fb8..02a56de542 100644 --- a/test/Microsoft.AspNet.TestHost.Tests/TestServerTests.cs +++ b/test/Microsoft.AspNet.TestHost.Tests/TestServerTests.cs @@ -31,6 +31,21 @@ namespace Microsoft.AspNet.TestHost new TestServer(new WebApplicationBuilder().Configure(app => { })); } + [Fact] + public void ApplicationServicesAvailableFromTestServer() + { + var testService = new TestService(); + var builder = new WebApplicationBuilder() + .Configure(app => { }) + .ConfigureServices(services => + { + services.AddSingleton(testService); + }); + var server = new TestServer(builder); + + Assert.Equal(testService, server.Application.Services.GetRequiredService()); + } + [ConditionalFact] [FrameworkSkipCondition(RuntimeFrameworks.Mono, SkipReason = "Hangs randomly (issue #507)")] public async Task RequestServicesAutoCreated()