public async Task ContentResult_DisablesResponseBuffering_IfBufferingFeatureAvailable() { // Arrange var data = "Test Content"; var contentResult = new ContentResult { Content = data, ContentType = new MediaTypeHeaderValue("text/plain") { Encoding = Encoding.ASCII } }; var httpContext = GetHttpContext(); httpContext.Features.Set <IHttpBufferingFeature>(new TestBufferingFeature()); var memoryStream = new MemoryStream(); httpContext.Response.Body = memoryStream; var actionContext = GetActionContext(httpContext); // Act await contentResult.ExecuteResultAsync(actionContext); // Assert Assert.Equal("text/plain; charset=us-ascii", httpContext.Response.ContentType); Assert.Equal(Encoding.ASCII.GetString(memoryStream.ToArray()), data); var bufferingFeature = (TestBufferingFeature)httpContext.Features.Get <IHttpBufferingFeature>(); Assert.True(bufferingFeature.DisableResponseBufferingInvoked); }
public async Task ContentResult_DisablesResponseBuffering_IfBufferingFeatureAvailable() { // Arrange var data = "Test Content"; var contentResult = new ContentResult { Content = data, ContentType = new MediaTypeHeaderValue("text/plain") { Encoding = Encoding.ASCII } }; var httpContext = GetHttpContext(); httpContext.Features.Set<IHttpBufferingFeature>(new TestBufferingFeature()); var memoryStream = new MemoryStream(); httpContext.Response.Body = memoryStream; var actionContext = GetActionContext(httpContext); // Act await contentResult.ExecuteResultAsync(actionContext); // Assert Assert.Equal("text/plain; charset=us-ascii", httpContext.Response.ContentType); Assert.Equal(Encoding.ASCII.GetString(memoryStream.ToArray()), data); var bufferingFeature = (TestBufferingFeature)httpContext.Features.Get<IHttpBufferingFeature>(); Assert.True(bufferingFeature.DisableResponseBufferingInvoked); }
public async Task ContentResult_ExecuteResultAsync_SetContentTypeAndEncoding_OnResponse( MediaTypeHeaderValue contentType, string content, string responseContentType, string expectedContentType, byte[] expectedContentData) { // Arrange var contentResult = new ContentResult { Content = content, ContentType = contentType }; var httpContext = GetHttpContext(); var memoryStream = new MemoryStream(); httpContext.Response.Body = memoryStream; httpContext.Response.ContentType = responseContentType; var actionContext = GetActionContext(httpContext); // Act await contentResult.ExecuteResultAsync(actionContext); // Assert Assert.Equal(expectedContentType, httpContext.Response.ContentType); Assert.Equal(expectedContentData, memoryStream.ToArray()); }
public async Task ContentResult_Response_NullEncoding_SetsContentTypeAndDefaultEncoding() { // Arrange var contentResult = new ContentResult { Content = "Test Content", ContentType = new MediaTypeHeaderValue("application/json") }; var httpContext = GetHttpContext(); var actionContext = GetActionContext(httpContext); // Act await contentResult.ExecuteResultAsync(actionContext); // Assert Assert.Equal("application/json; charset=utf-8", httpContext.Response.ContentType); }
public async Task ContentResult_Response_NullContentType_SetsEncodingAndDefaultContentType() { // Arrange var contentResult = new ContentResult { Content = "Test Content", ContentType = null, ContentEncoding = Encoding.UTF7 }; var httpContext = GetHttpContext(); var actionContext = GetActionContext(httpContext); // Act await contentResult.ExecuteResultAsync(actionContext); // Assert Assert.Equal("text/plain; charset=utf-7", httpContext.Response.ContentType); }
public async Task ContentResult_Response_SetsContentTypeAndEncoding() { // Arrange var contentResult = new ContentResult { Content = "Test Content", ContentType = "text/plain", ContentEncoding = Encoding.ASCII }; var httpContext = GetHttpContext(); var actionContext = GetActionContext(httpContext); // Act await contentResult.ExecuteResultAsync(actionContext); // Assert Assert.Equal("text/plain; charset=us-ascii", httpContext.Response.ContentType); }
public async Task ContentResult_Response_NullContent_SetsContentTypeAndEncoding() { // Arrange var contentResult = new ContentResult { Content = null, ContentType = "application/json", ContentEncoding = Encoding.UTF8 }; var httpContext = GetHttpContext(); var actionContext = GetActionContext(httpContext); // Act await contentResult.ExecuteResultAsync(actionContext); // Assert Assert.Equal("application/json; charset=utf-8", httpContext.Response.ContentType); }
public async Task ContentResult_Response_BadContentType_ThrowsFormatException() { // Arrange var contentResult = new ContentResult { Content = "Test Content", ContentType = "some-type", ContentEncoding = null }; var httpContext = GetHttpContext(); var actionContext = GetActionContext(httpContext); // Act var exception = await Assert.ThrowsAsync <FormatException>( async() => await contentResult.ExecuteResultAsync(actionContext)); // Assert Assert.Equal("Invalid media type 'some-type'.", exception.Message); }
public async Task ContentResult_Response_NullContent_SetsContentTypeAndEncoding() { // Arrange var contentResult = new ContentResult { Content = null, ContentType = new MediaTypeHeaderValue("text/plain") { Encoding = Encoding.UTF7 } }; var httpContext = GetHttpContext(); var actionContext = GetActionContext(httpContext); // Act await contentResult.ExecuteResultAsync(actionContext); // Assert Assert.Equal("text/plain; charset=utf-7", httpContext.Response.ContentType); }
public async Task ContentResult_Response_BadContentType_ThrowsFormatException() { // Arrange var contentResult = new ContentResult { Content = "Test Content", ContentType = "some-type", ContentEncoding = null }; var httpContext = GetHttpContext(); var actionContext = GetActionContext(httpContext); // Act var exception = await Assert.ThrowsAsync<FormatException>( async () => await contentResult.ExecuteResultAsync(actionContext)); // Assert Assert.Equal("Invalid media type 'some-type'.", exception.Message); }
public async Task ContentResult_ExecuteResultAsync_SetContentTypeAndEncoding_OnResponse( MediaTypeHeaderValue contentType, string content, string expectedContentType, byte[] expectedContentData) { // Arrange var contentResult = new ContentResult { Content = content, ContentType = contentType }; var httpContext = GetHttpContext(); var memoryStream = new MemoryStream(); httpContext.Response.Body = memoryStream; var actionContext = GetActionContext(httpContext); // Act await contentResult.ExecuteResultAsync(actionContext); // Assert Assert.Equal(expectedContentType, httpContext.Response.ContentType); Assert.Equal(expectedContentData, memoryStream.ToArray()); }