public void CanWriteResult_ReturnsTrue_IfReturnValueIsNullAndTreatNullValueAsNoContentIsNotSet( string value, bool treatNullValueAsNoContent, bool expected) { // Arrange var context = new OutputFormatterWriteContext( new DefaultHttpContext(), new TestHttpResponseStreamWriterFactory().CreateWriter, typeof(string), value) { ContentType = MediaTypeHeaderValue.Parse("text/plain"), }; var formatter = new HttpNoContentOutputFormatter() { TreatNullValueAsNoContent = treatNullValueAsNoContent }; // Act var result = formatter.CanWriteResult(context); // Assert Assert.Equal(expected, result); }
public void CanWriteResult_ByDefault_ReturnsTrue_IfTheValueIsNull( object value, bool declaredTypeAsString, bool expected, bool useNonNullContentType) { // Arrange var type = declaredTypeAsString ? typeof(string) : typeof(object); var contentType = useNonNullContentType ? MediaTypeHeaderValue.Parse("text/plain") : null; var context = new OutputFormatterWriteContext( new DefaultHttpContext(), new TestHttpResponseStreamWriterFactory().CreateWriter, type, value) { ContentType = contentType, }; var formatter = new HttpNoContentOutputFormatter(); // Act var result = formatter.CanWriteResult(context); // Assert Assert.Equal(expected, result); }
public async Task WriteAsync_WritesTheStatusCode204() { // Arrange var context = new OutputFormatterWriteContext( new DefaultHttpContext(), new TestHttpResponseStreamWriterFactory().CreateWriter, typeof(string), @object: null); var formatter = new HttpNoContentOutputFormatter(); // Act await formatter.WriteAsync(context); // Assert Assert.Equal(StatusCodes.Status204NoContent, context.HttpContext.Response.StatusCode); }
public void CanWriteResult_ReturnsTrue_IfReturnTypeIsVoidOrTask(Type declaredType) { // Arrange var formatterContext = new OutputFormatterContext() { Object = "Something non null.", DeclaredType = declaredType, HttpContext = null, }; var contetType = MediaTypeHeaderValue.Parse("text/plain"); var formatter = new HttpNoContentOutputFormatter(); // Act var actualCanWriteResult = formatter.CanWriteResult(formatterContext, contetType); // Assert Assert.True(actualCanWriteResult); }
public async Task WriteAsync_WritesTheStatusCode204() { // Arrange var defaultHttpContext = new DefaultHttpContext(); var formatterContext = new OutputFormatterContext() { Object = null, HttpContext = defaultHttpContext, }; var formatter = new HttpNoContentOutputFormatter(); // Act await formatter.WriteAsync(formatterContext); // Assert Assert.Equal(StatusCodes.Status204NoContent, defaultHttpContext.Response.StatusCode); }
public async Task WriteAsync_ContextStatusCodeSet_WritesSameStatusCode() { // Arrange var defaultHttpContext = new DefaultHttpContext(); var formatterContext = new OutputFormatterContext() { Object = null, HttpContext = defaultHttpContext, StatusCode = StatusCodes.Status201Created }; var formatter = new HttpNoContentOutputFormatter(); // Act await formatter.WriteAsync(formatterContext); // Assert Assert.Equal(StatusCodes.Status201Created, defaultHttpContext.Response.StatusCode); }
public void CanWriteResult_ReturnsTrue_IfReturnTypeIsVoidOrTask(Type declaredType) { // Arrange var context = new OutputFormatterWriteContext( new DefaultHttpContext(), new TestHttpResponseStreamWriterFactory().CreateWriter, declaredType, "Something non null.") { ContentType = MediaTypeHeaderValue.Parse("text/plain"), }; var formatter = new HttpNoContentOutputFormatter(); // Act var result = formatter.CanWriteResult(context); // Assert Assert.True(result); }
public async Task WriteAsync_ContextStatusCodeSet_WritesSameStatusCode() { // Arrange var httpContext = new DefaultHttpContext(); httpContext.Response.StatusCode = StatusCodes.Status201Created; var context = new OutputFormatterWriteContext( httpContext, new TestHttpResponseStreamWriterFactory().CreateWriter, typeof(string), @object: null); var formatter = new HttpNoContentOutputFormatter(); // Act await formatter.WriteAsync(context); // Assert Assert.Equal(StatusCodes.Status201Created, httpContext.Response.StatusCode); }
public void CanWriteResult_ByDefault_ReturnsTrue_IfTheValueIsNull( object value, bool declaredTypeAsString, bool expectedCanwriteResult, bool useNonNullContentType) { // Arrange var typeToUse = declaredTypeAsString ? typeof(string) : typeof(object); var formatterContext = new OutputFormatterContext() { Object = value, DeclaredType = typeToUse, HttpContext = null, }; var contetType = useNonNullContentType ? MediaTypeHeaderValue.Parse("text/plain") : null; var formatter = new HttpNoContentOutputFormatter(); // Act var actualCanWriteResult = formatter.CanWriteResult(formatterContext, contetType); // Assert Assert.Equal(expectedCanwriteResult, actualCanWriteResult); }
CanWriteResult_ReturnsTrue_IfReturnValueIsNullAndTreatNullValueAsNoContentIsNotSet(string value, bool treatNullValueAsNoContent, bool expectedCanwriteResult) { // Arrange var formatterContext = new OutputFormatterContext() { Object = value, DeclaredType = typeof(string), HttpContext = null, }; var contetType = MediaTypeHeaderValue.Parse("text/plain"); var formatter = new HttpNoContentOutputFormatter() { TreatNullValueAsNoContent = treatNullValueAsNoContent }; // Act var actualCanWriteResult = formatter.CanWriteResult(formatterContext, contetType); // Assert Assert.Equal(expectedCanwriteResult, actualCanWriteResult); }