diff --git a/src/Microsoft.AspNet.Mvc.Core/Formatters/NoContentFormatter.cs b/src/Microsoft.AspNet.Mvc.Core/Formatters/NoContentFormatter.cs index 5234fcd4e8..19179e7506 100644 --- a/src/Microsoft.AspNet.Mvc.Core/Formatters/NoContentFormatter.cs +++ b/src/Microsoft.AspNet.Mvc.Core/Formatters/NoContentFormatter.cs @@ -24,11 +24,9 @@ namespace Microsoft.AspNet.Mvc response.ContentLength = 0; // Only set the status code if its not already set. - if (response.StatusCode == 0) - { - response.StatusCode = 204; - } - + // TODO: By default the status code is set to 200. + // https://github.com/aspnet/HttpAbstractions/issues/114 + response.StatusCode = 204; return Task.FromResult(true); } } diff --git a/test/Microsoft.AspNet.Mvc.Core.Test/Formatters/NoContentFormatterTests.cs b/test/Microsoft.AspNet.Mvc.Core.Test/Formatters/NoContentFormatterTests.cs index 207080b33a..c4ce09d0bd 100644 --- a/test/Microsoft.AspNet.Mvc.Core.Test/Formatters/NoContentFormatterTests.cs +++ b/test/Microsoft.AspNet.Mvc.Core.Test/Formatters/NoContentFormatterTests.cs @@ -61,13 +61,10 @@ namespace Microsoft.AspNet.Mvc.Test } [Fact] - public async Task WriteAsync_WritesTheStatusCode204_IfNotAlreadySet() + public async Task WriteAsync_WritesTheStatusCode204() { // Arrange var defaultHttpContext = new DefaultHttpContext(); - - // Workaround for https://github.com/aspnet/HttpAbstractions/issues/114 - defaultHttpContext.Response.StatusCode = 0; var formatterContext = new OutputFormatterContext() { Object = null, @@ -82,26 +79,5 @@ namespace Microsoft.AspNet.Mvc.Test // Assert Assert.Equal(204, defaultHttpContext.Response.StatusCode); } - - [Fact] - public async Task WriteAsync_DoesnNotWriteTheStatusCode204_IfStatusCodeIsSetAlready() - { - // Arrange - var defaultHttpContext = new DefaultHttpContext(); - defaultHttpContext.Response.StatusCode = 201; - var formatterContext = new OutputFormatterContext() - { - Object = null, - ActionContext = new ActionContext(defaultHttpContext, new RouteData(), new ActionDescriptor()) - }; - - var formatter = new NoContentFormatter(); - - // Act - await formatter.WriteAsync(formatterContext); - - // Assert - Assert.Equal(201, defaultHttpContext.Response.StatusCode); - } } } diff --git a/test/Microsoft.AspNet.Mvc.FunctionalTests/OutputFormattterTests.cs b/test/Microsoft.AspNet.Mvc.FunctionalTests/OutputFormattterTests.cs index 7d123ee0d1..cd7fed2512 100644 --- a/test/Microsoft.AspNet.Mvc.FunctionalTests/OutputFormattterTests.cs +++ b/test/Microsoft.AspNet.Mvc.FunctionalTests/OutputFormattterTests.cs @@ -58,8 +58,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests [Theory] [InlineData("ReturnTaskOfString_NullValue")] - [InlineData("ReturnTaskOfObject_StringValue")] - [InlineData("ReturnTaskOfObject_NullValue")] + [InlineData("ReturnTaskOfObject_NullValue")] [InlineData("ReturnObject_NullValue")] public async Task NoContentFormatter_ForNullValue_GetsSelectedAndWritesResponse(string actionName) { diff --git a/test/Microsoft.AspNet.Mvc.Test/MvcOptionSetupTest.cs b/test/Microsoft.AspNet.Mvc.Test/MvcOptionSetupTest.cs index 39a37485d1..7435777fb6 100644 --- a/test/Microsoft.AspNet.Mvc.Test/MvcOptionSetupTest.cs +++ b/test/Microsoft.AspNet.Mvc.Test/MvcOptionSetupTest.cs @@ -73,9 +73,10 @@ namespace Microsoft.AspNet.Mvc setup.Setup(mvcOptions); // Assert - Assert.Equal(2, mvcOptions.OutputFormatters.Count); - Assert.IsType(mvcOptions.OutputFormatters[0].Instance); - Assert.IsType(mvcOptions.OutputFormatters[1].Instance); + Assert.Equal(3, mvcOptions.OutputFormatters.Count); + Assert.IsType(mvcOptions.OutputFormatters[0].Instance); + Assert.IsType(mvcOptions.OutputFormatters[1].Instance); + Assert.IsType(mvcOptions.OutputFormatters[2].Instance); } } } \ No newline at end of file