From 9ac37fbc7a0be1138d69493a9a3d50a0a5e04826 Mon Sep 17 00:00:00 2001 From: Yishai Galatzer Date: Fri, 16 Jan 2015 12:09:53 -0800 Subject: [PATCH] Rename TextPlainFormatter and remove other minor warnings #1631 --- ...ainFormatter.cs => StringOutputFormatter.cs} | 17 ++++++----------- src/Microsoft.AspNet.Mvc/MvcOptionsSetup.cs | 2 +- .../ActionResults/CreatedAtActionResultTests.cs | 2 +- .../ActionResults/CreatedAtRouteResultTests.cs | 2 +- .../ActionResults/CreatedResultTests.cs | 2 +- .../ActionResults/ObjectResultTests.cs | 8 ++++---- ...erTests.cs => StringOutputFormatterTests.cs} | 4 ++-- .../OutputFormatterTest.cs | 2 +- .../RazorPageTest.cs | 2 ++ .../RazorViewTest.cs | 3 +++ .../MvcOptionSetupTest.cs | 2 +- 11 files changed, 23 insertions(+), 23 deletions(-) rename src/Microsoft.AspNet.Mvc.Core/Formatters/{TextPlainFormatter.cs => StringOutputFormatter.cs} (74%) rename test/Microsoft.AspNet.Mvc.Core.Test/Formatters/{TextPlainFormatterTests.cs => StringOutputFormatterTests.cs} (96%) diff --git a/src/Microsoft.AspNet.Mvc.Core/Formatters/TextPlainFormatter.cs b/src/Microsoft.AspNet.Mvc.Core/Formatters/StringOutputFormatter.cs similarity index 74% rename from src/Microsoft.AspNet.Mvc.Core/Formatters/TextPlainFormatter.cs rename to src/Microsoft.AspNet.Mvc.Core/Formatters/StringOutputFormatter.cs index a2fecf414b..6df01729c3 100644 --- a/src/Microsoft.AspNet.Mvc.Core/Formatters/TextPlainFormatter.cs +++ b/src/Microsoft.AspNet.Mvc.Core/Formatters/StringOutputFormatter.cs @@ -1,8 +1,8 @@ // Copyright (c) Microsoft Open Technologies, Inc. All rights reserved. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. -using System.IO; using System.Threading.Tasks; +using Microsoft.AspNet.Http; using Microsoft.Net.Http.Headers; namespace Microsoft.AspNet.Mvc @@ -10,9 +10,9 @@ namespace Microsoft.AspNet.Mvc /// /// Always writes a string value to the response, regardless of requested content type. /// - public class TextPlainFormatter : OutputFormatter + public class StringOutputFormatter : OutputFormatter { - public TextPlainFormatter() + public StringOutputFormatter() { SupportedEncodings.Add(Encodings.UTF8EncodingWithoutBOM); SupportedEncodings.Add(Encodings.UTF16EncodingLittleEndian); @@ -39,19 +39,14 @@ namespace Microsoft.AspNet.Mvc public override async Task WriteResponseBodyAsync(OutputFormatterContext context) { var valueAsString = (string)context.Object; - if (valueAsString == null) + if (string.IsNullOrEmpty(valueAsString)) { - // if the value is null don't write anything. return; } var response = context.ActionContext.HttpContext.Response; - using (var delegatingStream = new DelegatingStream(response.Body)) - using (var writer = new StreamWriter(delegatingStream, context.SelectedEncoding, 1024, leaveOpen: true)) - { - await writer.WriteAsync(valueAsString); - } + await response.WriteAsync(valueAsString, context.SelectedEncoding); } } -} \ No newline at end of file +} diff --git a/src/Microsoft.AspNet.Mvc/MvcOptionsSetup.cs b/src/Microsoft.AspNet.Mvc/MvcOptionsSetup.cs index ff0fb02ec9..4482412b15 100644 --- a/src/Microsoft.AspNet.Mvc/MvcOptionsSetup.cs +++ b/src/Microsoft.AspNet.Mvc/MvcOptionsSetup.cs @@ -42,7 +42,7 @@ namespace Microsoft.AspNet.Mvc // Set up default output formatters. options.OutputFormatters.Add(new HttpNoContentOutputFormatter()); - options.OutputFormatters.Add(new TextPlainFormatter()); + options.OutputFormatters.Add(new StringOutputFormatter()); options.OutputFormatters.Add(new JsonOutputFormatter()); // Set up default input formatters. diff --git a/test/Microsoft.AspNet.Mvc.Core.Test/ActionResults/CreatedAtActionResultTests.cs b/test/Microsoft.AspNet.Mvc.Core.Test/ActionResults/CreatedAtActionResultTests.cs index bed768483f..f948290609 100644 --- a/test/Microsoft.AspNet.Mvc.Core.Test/ActionResults/CreatedAtActionResultTests.cs +++ b/test/Microsoft.AspNet.Mvc.Core.Test/ActionResults/CreatedAtActionResultTests.cs @@ -119,7 +119,7 @@ namespace Microsoft.AspNet.Mvc { return new List() { - new TextPlainFormatter(), + new StringOutputFormatter(), new JsonOutputFormatter() }; } diff --git a/test/Microsoft.AspNet.Mvc.Core.Test/ActionResults/CreatedAtRouteResultTests.cs b/test/Microsoft.AspNet.Mvc.Core.Test/ActionResults/CreatedAtRouteResultTests.cs index 4345727611..d9b5a222c3 100644 --- a/test/Microsoft.AspNet.Mvc.Core.Test/ActionResults/CreatedAtRouteResultTests.cs +++ b/test/Microsoft.AspNet.Mvc.Core.Test/ActionResults/CreatedAtRouteResultTests.cs @@ -128,7 +128,7 @@ namespace Microsoft.AspNet.Mvc { return new List() { - new TextPlainFormatter(), + new StringOutputFormatter(), new JsonOutputFormatter() }; } diff --git a/test/Microsoft.AspNet.Mvc.Core.Test/ActionResults/CreatedResultTests.cs b/test/Microsoft.AspNet.Mvc.Core.Test/ActionResults/CreatedResultTests.cs index b70b8027eb..a6fa5c176b 100644 --- a/test/Microsoft.AspNet.Mvc.Core.Test/ActionResults/CreatedResultTests.cs +++ b/test/Microsoft.AspNet.Mvc.Core.Test/ActionResults/CreatedResultTests.cs @@ -86,7 +86,7 @@ namespace Microsoft.AspNet.Mvc { return new List() { - new TextPlainFormatter(), + new StringOutputFormatter(), new JsonOutputFormatter() }; } diff --git a/test/Microsoft.AspNet.Mvc.Core.Test/ActionResults/ObjectResultTests.cs b/test/Microsoft.AspNet.Mvc.Core.Test/ActionResults/ObjectResultTests.cs index 13cdea35bb..bdcd2c1258 100644 --- a/test/Microsoft.AspNet.Mvc.Core.Test/ActionResults/ObjectResultTests.cs +++ b/test/Microsoft.AspNet.Mvc.Core.Test/ActionResults/ObjectResultTests.cs @@ -490,7 +490,7 @@ namespace Microsoft.AspNet.Mvc.Core.Test.ActionResults var objectResult = new ObjectResult(new Person() { Name = "John" }); var outputFormatters = new IOutputFormatter[] { new HttpNoContentOutputFormatter(), - new TextPlainFormatter(), + new StringOutputFormatter(), new JsonOutputFormatter(), new XmlDataContractSerializerOutputFormatter(XmlSerializerOutputFormatter.GetDefaultXmlWriterSettings()) }; @@ -531,7 +531,7 @@ namespace Microsoft.AspNet.Mvc.Core.Test.ActionResults var objectResult = new ObjectResult(new Person() { Name = "John" }); var outputFormatters = new IOutputFormatter[] { new HttpNoContentOutputFormatter(), - new TextPlainFormatter(), + new StringOutputFormatter(), new JsonOutputFormatter(), new XmlDataContractSerializerOutputFormatter(XmlSerializerOutputFormatter.GetDefaultXmlWriterSettings()) }; @@ -566,7 +566,7 @@ namespace Microsoft.AspNet.Mvc.Core.Test.ActionResults objectResult.ContentTypes.Add(MediaTypeHeaderValue.Parse("application/json")); var outputFormatters = new IOutputFormatter[] { new HttpNoContentOutputFormatter(), - new TextPlainFormatter(), + new StringOutputFormatter(), new JsonOutputFormatter(), new XmlDataContractSerializerOutputFormatter(XmlSerializerOutputFormatter.GetDefaultXmlWriterSettings()) }; @@ -592,7 +592,7 @@ namespace Microsoft.AspNet.Mvc.Core.Test.ActionResults string requestAcceptCharsetHeader = "", bool respectBrowserAcceptHeader = false) { - var formatters = new IOutputFormatter[] { new TextPlainFormatter(), new JsonOutputFormatter() }; + var formatters = new IOutputFormatter[] { new StringOutputFormatter(), new JsonOutputFormatter() }; return CreateMockActionContext( formatters, diff --git a/test/Microsoft.AspNet.Mvc.Core.Test/Formatters/TextPlainFormatterTests.cs b/test/Microsoft.AspNet.Mvc.Core.Test/Formatters/StringOutputFormatterTests.cs similarity index 96% rename from test/Microsoft.AspNet.Mvc.Core.Test/Formatters/TextPlainFormatterTests.cs rename to test/Microsoft.AspNet.Mvc.Core.Test/Formatters/StringOutputFormatterTests.cs index 6b6de7931d..7771678b1e 100644 --- a/test/Microsoft.AspNet.Mvc.Core.Test/Formatters/TextPlainFormatterTests.cs +++ b/test/Microsoft.AspNet.Mvc.Core.Test/Formatters/StringOutputFormatterTests.cs @@ -32,7 +32,7 @@ namespace Microsoft.AspNet.Mvc public void CanWriteResult_ReturnsTrueForStringTypes(object value, bool useDeclaredTypeAsString, bool expectedCanWriteResult) { // Arrange - var formatter = new TextPlainFormatter(); + var formatter = new StringOutputFormatter(); var typeToUse = useDeclaredTypeAsString ? typeof(string) : typeof(object); var formatterContext = new OutputFormatterContext() { @@ -59,7 +59,7 @@ namespace Microsoft.AspNet.Mvc var mockHttpContext = new Mock(); mockHttpContext.Setup(o => o.Response).Returns(response.Object); - var formatter = new TextPlainFormatter(); + var formatter = new StringOutputFormatter(); var formatterContext = new OutputFormatterContext() { Object = null, diff --git a/test/Microsoft.AspNet.Mvc.FunctionalTests/OutputFormatterTest.cs b/test/Microsoft.AspNet.Mvc.FunctionalTests/OutputFormatterTest.cs index 6161e3e626..ffa3a3f69f 100644 --- a/test/Microsoft.AspNet.Mvc.FunctionalTests/OutputFormatterTest.cs +++ b/test/Microsoft.AspNet.Mvc.FunctionalTests/OutputFormatterTest.cs @@ -22,7 +22,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests [InlineData("ReturnTaskOfObject_StringValue")] [InlineData("ReturnString")] [InlineData("ReturnObject_StringValue")] - public async Task TextPlainFormatter_ForStringValues_GetsSelectedReturnsTextPlainContentType(string actionName) + public async Task StringOutputFormatter_ForStringValues_GetsSelectedReturnsTextPlainContentType(string actionName) { // Arrange var server = TestServer.Create(_provider, _app); diff --git a/test/Microsoft.AspNet.Mvc.Razor.Test/RazorPageTest.cs b/test/Microsoft.AspNet.Mvc.Razor.Test/RazorPageTest.cs index 3309451c3e..3d9ceb29e7 100644 --- a/test/Microsoft.AspNet.Mvc.Razor.Test/RazorPageTest.cs +++ b/test/Microsoft.AspNet.Mvc.Razor.Test/RazorPageTest.cs @@ -17,7 +17,9 @@ namespace Microsoft.AspNet.Mvc.Razor { public class RazorPageTest { +#pragma warning disable 1998 private readonly RenderAsyncDelegate _nullRenderAsyncDelegate = async writer => { }; +#pragma warning restore 1998 [Fact] public async Task WritingScopesRedirectContentWrittenToViewContextWriter() diff --git a/test/Microsoft.AspNet.Mvc.Razor.Test/RazorViewTest.cs b/test/Microsoft.AspNet.Mvc.Razor.Test/RazorViewTest.cs index 7ce232622f..b107db2f8d 100644 --- a/test/Microsoft.AspNet.Mvc.Razor.Test/RazorViewTest.cs +++ b/test/Microsoft.AspNet.Mvc.Razor.Test/RazorViewTest.cs @@ -16,7 +16,10 @@ namespace Microsoft.AspNet.Mvc.Razor public class RazorViewTest { private const string LayoutPath = "~/Shared/_Layout.cshtml"; + +#pragma warning disable 1998 private readonly RenderAsyncDelegate _nullRenderAsyncDelegate = async writer => { }; +#pragma warning restore 1998 [Fact] public async Task RenderAsync_AsPartial_DoesNotBufferOutput() diff --git a/test/Microsoft.AspNet.Mvc.Test/MvcOptionSetupTest.cs b/test/Microsoft.AspNet.Mvc.Test/MvcOptionSetupTest.cs index d946be0beb..7e22edeb35 100644 --- a/test/Microsoft.AspNet.Mvc.Test/MvcOptionSetupTest.cs +++ b/test/Microsoft.AspNet.Mvc.Test/MvcOptionSetupTest.cs @@ -85,7 +85,7 @@ namespace Microsoft.AspNet.Mvc // Assert Assert.Equal(3, mvcOptions.OutputFormatters.Count); Assert.IsType(mvcOptions.OutputFormatters[0].Instance); - Assert.IsType(mvcOptions.OutputFormatters[1].Instance); + Assert.IsType(mvcOptions.OutputFormatters[1].Instance); Assert.IsType(mvcOptions.OutputFormatters[2].Instance); }