public async Task ContentResult_ExecuteAsync_SetContentTypeAndEncoding_OnResponse( MediaTypeHeaderValue contentType, string content, string responseContentType, string expectedContentType, byte[] expectedContentData) { // Arrange var contentResult = new ContentHttpResult(content, contentType?.ToString()); var httpContext = GetHttpContext(); var memoryStream = new MemoryStream(); httpContext.Response.Body = memoryStream; httpContext.Response.ContentType = responseContentType; // Act await contentResult.ExecuteAsync(httpContext); // Assert var finalResponseContentType = httpContext.Response.ContentType; Assert.Equal(expectedContentType, finalResponseContentType); Assert.Equal(expectedContentData, memoryStream.ToArray()); Assert.Equal(expectedContentData.Length, httpContext.Response.ContentLength); }
public void ExecuteAsync_ThrowsArgumentNullException_WhenHttpContextIsNull() { // Arrange var result = new ContentHttpResult("content", null); HttpContext httpContext = null; // Act & Assert Assert.ThrowsAsync <ArgumentNullException>("httpContext", () => result.ExecuteAsync(httpContext)); }
public async Task ContentResult_ExecuteAsync_Response_NullContent_SetsContentTypeAndEncoding() { // Arrange var contentType = new MediaTypeHeaderValue("text/plain") { Encoding = Encoding.Unicode }.ToString(); var contentResult = new ContentHttpResult(null, contentType); var httpContext = GetHttpContext(); // Act await contentResult.ExecuteAsync(httpContext); // Assert Assert.Equal("text/plain; charset=utf-16", httpContext.Response.ContentType); }