From 48451bdabcf0fcabd24cc4863b5d5b0c89637273 Mon Sep 17 00:00:00 2001 From: John Luo Date: Mon, 11 Jan 2016 13:28:48 -0800 Subject: [PATCH] Making application available from TestServer #519 --- src/Microsoft.AspNet.TestHost/TestServer.cs | 8 ++++++++ .../TestServerTests.cs | 15 +++++++++++++++ 2 files changed, 23 insertions(+) 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()