public async Task DisablesResponseBuffering_IfBufferingFeatureAvailable() { // Arrange var formatter = new StreamOutputFormatter(); var expected = Encoding.UTF8.GetBytes("Test data"); var httpContext = new DefaultHttpContext(); var body = new MemoryStream(); httpContext.Response.Body = body; var bufferingFeature = new TestBufferingFeature(); httpContext.Features.Set <IHttpBufferingFeature>(bufferingFeature); var context = new OutputFormatterWriteContext( httpContext, new TestHttpResponseStreamWriterFactory().CreateWriter, typeof(Stream), new MemoryStream(expected)); // Act await formatter.WriteAsync(context); // Assert Assert.Equal(expected, body.ToArray()); Assert.True(bufferingFeature.DisableResponseBufferingInvoked); }
public void CanWriteResult_OnlyActsOnStreams(Type type) { // Arrange var formatter = new StreamOutputFormatter(); var @object = type != null?Activator.CreateInstance(type) : null; var context = new OutputFormatterWriteContext( new DefaultHttpContext(), new TestHttpResponseStreamWriterFactory().CreateWriter, type, @object); // Act var result = formatter.CanWriteResult(context); // Assert Assert.False(result); }
public void CanWriteResult_OnlyActsOnStreams(Type type) { // Arrange var formatter = new StreamOutputFormatter(); var @object = type != null ? Activator.CreateInstance(type) : null; var context = new OutputFormatterWriteContext( new DefaultHttpContext(), new TestHttpResponseStreamWriterFactory().CreateWriter, type, @object); // Act var result = formatter.CanWriteResult(context); // Assert Assert.False(result); }
public void CanWriteResult_OnlyActsOnStreams_IgnoringContentType(Type type, string contentType) { // Arrange var formatter = new StreamOutputFormatter(); var contentTypeHeader = contentType == null ? new StringSegment() : new StringSegment(contentType); var context = new OutputFormatterWriteContext( new DefaultHttpContext(), new TestHttpResponseStreamWriterFactory().CreateWriter, type, new SimplePOCO()) { ContentType = contentTypeHeader, }; // Act var canWrite = formatter.CanWriteResult(context); // Assert Assert.False(canWrite); }
public void CanWriteResult_ReturnsTrue_ForStreams(Type type, string contentType) { // Arrange var formatter = new StreamOutputFormatter(); var contentTypeHeader = new StringSegment(contentType); var context = new OutputFormatterWriteContext( new DefaultHttpContext(), new TestHttpResponseStreamWriterFactory().CreateWriter, type, new MemoryStream()) { ContentType = contentTypeHeader, }; // Act var canWrite = formatter.CanWriteResult(context); // Assert Assert.True(canWrite); }
public void CanWriteResult_OnlyActsOnStreams_IgnoringContentType(Type type, string contentType) { // Arrange var formatter = new StreamOutputFormatter(); var contentTypeHeader = contentType == null ? new StringSegment() : new StringSegment(contentType); var context = new OutputFormatterWriteContext( new DefaultHttpContext(), new TestHttpResponseStreamWriterFactory().CreateWriter, type, new SimplePOCO()) { ContentType = contentTypeHeader, }; // Act var canWrite = formatter.CanWriteResult(context); // Assert Assert.False(canWrite); }
public void CanWriteResult_ReturnsTrue_ForStreams(Type type, string contentType) { // Arrange var formatter = new StreamOutputFormatter(); var contentTypeHeader = new StringSegment(contentType); var context = new OutputFormatterWriteContext( new DefaultHttpContext(), new TestHttpResponseStreamWriterFactory().CreateWriter, type, new MemoryStream()) { ContentType = contentTypeHeader, }; // Act var canWrite = formatter.CanWriteResult(context); // Assert Assert.True(canWrite); }
public async Task DisablesResponseBuffering_IfBufferingFeatureAvailable() { // Arrange var formatter = new StreamOutputFormatter(); var expected = Encoding.UTF8.GetBytes("Test data"); var httpContext = new DefaultHttpContext(); var body = new MemoryStream(); httpContext.Response.Body = body; var bufferingFeature = new TestBufferingFeature(); httpContext.Features.Set<IHttpBufferingFeature>(bufferingFeature); var context = new OutputFormatterWriteContext( httpContext, new TestHttpResponseStreamWriterFactory().CreateWriter, typeof(Stream), new MemoryStream(expected)); // Act await formatter.WriteAsync(context); // Assert Assert.Equal(expected, body.ToArray()); Assert.True(bufferingFeature.DisableResponseBufferingInvoked); }