From ba6044a5f3de32c51ce904c7fd5e83f2701f5d97 Mon Sep 17 00:00:00 2001 From: Pranav K Date: Mon, 25 Apr 2016 10:13:31 -0700 Subject: [PATCH] Remove references to IApplicationEnvironment \ IRuntimeEnvironment --- .../DeveloperExceptionPageMiddleware.cs | 8 +-- .../RuntimeInfo/RuntimeInfoExtensions.cs | 4 +- .../RuntimeInfo/RuntimeInfoMiddleware.cs | 22 ++----- .../project.json | 1 + .../DeveloperExceptionPageMiddlewareTest.cs | 64 +------------------ .../RuntimeInfoMiddlewareTest.cs | 55 +++------------- 6 files changed, 23 insertions(+), 131 deletions(-) diff --git a/src/Microsoft.AspNetCore.Diagnostics/DeveloperExceptionPage/DeveloperExceptionPageMiddleware.cs b/src/Microsoft.AspNetCore.Diagnostics/DeveloperExceptionPage/DeveloperExceptionPageMiddleware.cs index af231a3b24..df450defcb 100644 --- a/src/Microsoft.AspNetCore.Diagnostics/DeveloperExceptionPage/DeveloperExceptionPageMiddleware.cs +++ b/src/Microsoft.AspNetCore.Diagnostics/DeveloperExceptionPage/DeveloperExceptionPageMiddleware.cs @@ -11,11 +11,11 @@ using System.Linq; using System.Threading.Tasks; using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Diagnostics.Views; +using Microsoft.AspNetCore.Hosting; using Microsoft.AspNetCore.Http; using Microsoft.Extensions.FileProviders; using Microsoft.Extensions.Logging; using Microsoft.Extensions.Options; -using Microsoft.Extensions.PlatformAbstractions; using StackFrame = Microsoft.AspNetCore.Diagnostics.Views.StackFrame; namespace Microsoft.AspNetCore.Diagnostics @@ -38,13 +38,13 @@ namespace Microsoft.AspNetCore.Diagnostics /// /// /// - /// + /// /// public DeveloperExceptionPageMiddleware( RequestDelegate next, IOptions options, ILoggerFactory loggerFactory, - IApplicationEnvironment appEnvironment, + IHostingEnvironment hostingEnvironment, DiagnosticSource diagnosticSource) { if (next == null) @@ -60,7 +60,7 @@ namespace Microsoft.AspNetCore.Diagnostics _next = next; _options = options.Value; _logger = loggerFactory.CreateLogger(); - _fileProvider = _options.FileProvider ?? new PhysicalFileProvider(appEnvironment.ApplicationBasePath); + _fileProvider = _options.FileProvider ?? hostingEnvironment.ContentRootFileProvider; _diagnosticSource = diagnosticSource; } diff --git a/src/Microsoft.AspNetCore.Diagnostics/RuntimeInfo/RuntimeInfoExtensions.cs b/src/Microsoft.AspNetCore.Diagnostics/RuntimeInfo/RuntimeInfoExtensions.cs index daa470bd5f..00a092c07a 100644 --- a/src/Microsoft.AspNetCore.Diagnostics/RuntimeInfo/RuntimeInfoExtensions.cs +++ b/src/Microsoft.AspNetCore.Diagnostics/RuntimeInfo/RuntimeInfoExtensions.cs @@ -5,7 +5,6 @@ using System; using Microsoft.AspNetCore.Diagnostics; using Microsoft.AspNetCore.Http; using Microsoft.Extensions.Options; -using Microsoft.Extensions.PlatformAbstractions; namespace Microsoft.AspNetCore.Builder { @@ -47,8 +46,7 @@ namespace Microsoft.AspNetCore.Builder throw new ArgumentNullException(nameof(options)); } - var runtimeEnvironment = app.ApplicationServices.GetService(typeof(IRuntimeEnvironment)) as IRuntimeEnvironment; - return app.UseMiddleware(Options.Create(options), runtimeEnvironment); + return app.UseMiddleware(Options.Create(options)); } } } diff --git a/src/Microsoft.AspNetCore.Diagnostics/RuntimeInfo/RuntimeInfoMiddleware.cs b/src/Microsoft.AspNetCore.Diagnostics/RuntimeInfo/RuntimeInfoMiddleware.cs index ed2b887701..46aa7c2e4b 100644 --- a/src/Microsoft.AspNetCore.Diagnostics/RuntimeInfo/RuntimeInfoMiddleware.cs +++ b/src/Microsoft.AspNetCore.Diagnostics/RuntimeInfo/RuntimeInfoMiddleware.cs @@ -18,18 +18,15 @@ namespace Microsoft.AspNetCore.Diagnostics { private readonly RequestDelegate _next; private readonly RuntimeInfoPageOptions _options; - private readonly IRuntimeEnvironment _runtimeEnvironment; /// /// Initializes a new instance of the class /// /// /// - /// public RuntimeInfoMiddleware( RequestDelegate next, - IOptions options, - IRuntimeEnvironment runtimeEnvironment) + IOptions options) { if (next == null) { @@ -41,14 +38,8 @@ namespace Microsoft.AspNetCore.Diagnostics throw new ArgumentNullException(nameof(options)); } - if (runtimeEnvironment == null) - { - throw new ArgumentNullException(nameof(runtimeEnvironment)); - } - _next = next; _options = options.Value; - _runtimeEnvironment = runtimeEnvironment; } /// @@ -69,13 +60,14 @@ namespace Microsoft.AspNetCore.Diagnostics return _next(context); } - internal RuntimeInfoPageModel CreateRuntimeInfoModel() + private static RuntimeInfoPageModel CreateRuntimeInfoModel() { var model = new RuntimeInfoPageModel(); - model.Version = _runtimeEnvironment.RuntimeVersion; - model.OperatingSystem = _runtimeEnvironment.OperatingSystem; - model.RuntimeType = _runtimeEnvironment.RuntimeType; - model.RuntimeArchitecture = _runtimeEnvironment.RuntimeArchitecture; + var runtimeEnvironment = PlatformServices.Default.Runtime; + model.Version = runtimeEnvironment.RuntimeVersion; + model.OperatingSystem = runtimeEnvironment.OperatingSystem; + model.RuntimeType = runtimeEnvironment.RuntimeType; + model.RuntimeArchitecture = runtimeEnvironment.RuntimeArchitecture; return model; } } diff --git a/src/Microsoft.AspNetCore.Diagnostics/project.json b/src/Microsoft.AspNetCore.Diagnostics/project.json index 3a30cf5007..6be1608f12 100644 --- a/src/Microsoft.AspNetCore.Diagnostics/project.json +++ b/src/Microsoft.AspNetCore.Diagnostics/project.json @@ -23,6 +23,7 @@ "type": "build", "version": "1.0.0-*" }, + "Microsoft.AspNetCore.Hosting.Abstractions": "1.0.0-*", "Microsoft.AspNetCore.Http.Extensions": "1.0.0-*", "Microsoft.AspNetCore.WebUtilities": "1.0.0-*", "Microsoft.Extensions.FileProviders.Physical": "1.0.0-*", diff --git a/test/Microsoft.AspNetCore.Diagnostics.Tests/DeveloperExceptionPageMiddlewareTest.cs b/test/Microsoft.AspNetCore.Diagnostics.Tests/DeveloperExceptionPageMiddlewareTest.cs index a09a36e909..49ac11fd3c 100644 --- a/test/Microsoft.AspNetCore.Diagnostics.Tests/DeveloperExceptionPageMiddlewareTest.cs +++ b/test/Microsoft.AspNetCore.Diagnostics.Tests/DeveloperExceptionPageMiddlewareTest.cs @@ -23,6 +23,7 @@ using Microsoft.Extensions.Options; using Microsoft.Extensions.Primitives; using Xunit; using StackFrame = Microsoft.AspNetCore.Diagnostics.Views.StackFrame; +using Moq; namespace Microsoft.AspNetCore.Diagnostics { @@ -309,73 +310,12 @@ namespace Microsoft.AspNetCore.Diagnostics (httpContext) => { return Task.FromResult(0); }, Options.Create(options), new LoggerFactory(), - new TestApplicationEnvironment(), + Mock.Of(), new DiagnosticListener("Microsoft.Aspnet")); return middleware; } - private class TestApplicationEnvironment : IApplicationEnvironment - { - public string ApplicationBasePath - { - get - { - return Directory.GetCurrentDirectory(); - } - } - - public string ApplicationName - { - get - { - throw new NotImplementedException(); - } - } - - public string ApplicationVersion - { - get - { - throw new NotImplementedException(); - } - } - - public string Configuration - { - get - { - throw new NotImplementedException(); - } - } - - public FrameworkName RuntimeFramework - { - get - { - throw new NotImplementedException(); - } - } - - public string Version - { - get - { - throw new NotImplementedException(); - } - } - - public object GetData(string name) - { - throw new NotImplementedException(); - } - - public void SetData(string name, object value) - { - throw new NotImplementedException(); - } - } - private class TestFileProvider : IFileProvider { private readonly IEnumerable _sourceCodeLines; diff --git a/test/Microsoft.AspNetCore.Diagnostics.Tests/RuntimeInfoMiddlewareTest.cs b/test/Microsoft.AspNetCore.Diagnostics.Tests/RuntimeInfoMiddlewareTest.cs index 6f712c2dc2..c4e0990d07 100644 --- a/test/Microsoft.AspNetCore.Diagnostics.Tests/RuntimeInfoMiddlewareTest.cs +++ b/test/Microsoft.AspNetCore.Diagnostics.Tests/RuntimeInfoMiddlewareTest.cs @@ -27,42 +27,10 @@ namespace Microsoft.AspNetCore.Diagnostics.Tests Assert.Equal(DefaultPath, options.Path.Value); } - [Fact] - public void CreateRuntimeInfoModel_GetsTheVersionAndAllPackages() - { - // Arrage - var runtimeEnvironmentMock = new Mock(MockBehavior.Strict); - runtimeEnvironmentMock.Setup(r => r.OperatingSystem).Returns("Windows"); - runtimeEnvironmentMock.Setup(r => r.RuntimeArchitecture).Returns("x64"); - runtimeEnvironmentMock.Setup(r => r.RuntimeType).Returns("clr"); - runtimeEnvironmentMock.Setup(r => r.RuntimeVersion).Returns("1.0.0"); - - RequestDelegate next = _ => - { - return Task.FromResult(null); - }; - - var middleware = new RuntimeInfoMiddleware( - next, - Options.Create(new RuntimeInfoPageOptions()), - runtimeEnvironmentMock.Object); - - // Act - var model = middleware.CreateRuntimeInfoModel(); - - // Assert - Assert.Equal("1.0.0", model.Version); - Assert.Equal("Windows", model.OperatingSystem); - Assert.Equal("clr", model.RuntimeType); - Assert.Equal("x64", model.RuntimeArchitecture); - } - [Fact] public async void Invoke_WithNonMatchingPath_IgnoresRequest() { // Arrange - var runtimeEnvironmentMock = new Mock(MockBehavior.Strict); - RequestDelegate next = _ => { return Task.FromResult(null); @@ -70,8 +38,7 @@ namespace Microsoft.AspNetCore.Diagnostics.Tests var middleware = new RuntimeInfoMiddleware( next, - Options.Create(new RuntimeInfoPageOptions()), - runtimeEnvironmentMock.Object); + Options.Create(new RuntimeInfoPageOptions())); var contextMock = new Mock(MockBehavior.Strict); contextMock @@ -89,21 +56,15 @@ namespace Microsoft.AspNetCore.Diagnostics.Tests public async void Invoke_WithMatchingPath_ReturnsInfoPage() { // Arrange - var runtimeEnvironmentMock = new Mock(MockBehavior.Strict); - runtimeEnvironmentMock.Setup(r => r.OperatingSystem).Returns("Windows"); - runtimeEnvironmentMock.Setup(r => r.RuntimeArchitecture).Returns("x64"); - runtimeEnvironmentMock.Setup(r => r.RuntimeType).Returns("clr"); - runtimeEnvironmentMock.Setup(r => r.RuntimeVersion).Returns("1.0.0"); - RequestDelegate next = _ => { return Task.FromResult(null); }; + var runtimeEnvironment = PlatformServices.Default.Runtime; var middleware = new RuntimeInfoMiddleware( next, - Options.Create(new RuntimeInfoPageOptions()), - runtimeEnvironmentMock.Object); + Options.Create(new RuntimeInfoPageOptions())); var buffer = new byte[4096]; using (var responseStream = new MemoryStream(buffer)) @@ -123,12 +84,12 @@ namespace Microsoft.AspNetCore.Diagnostics.Tests await middleware.Invoke(contextMock.Object); // Assert - string response = Encoding.UTF8.GetString(buffer); + var response = Encoding.UTF8.GetString(buffer); - Assert.Contains("

Runtime Version: 1.0.0

", response); - Assert.Contains("

Operating System: Windows

", response); - Assert.Contains("

Runtime Architecture: x64

", response); - Assert.Contains("

Runtime Type: clr

", response); + Assert.Contains($"

Runtime Version: {runtimeEnvironment.RuntimeVersion}

", response); + Assert.Contains($"

Operating System: {runtimeEnvironment.OperatingSystem}

", response); + Assert.Contains($"

Runtime Architecture: {runtimeEnvironment.RuntimeArchitecture}

", response); + Assert.Contains($"

Runtime Type: {runtimeEnvironment.RuntimeType}

", response); } } }