public void SupportedMediaTypes(string type) { var formatter = new SpanJsonOutputFormatter <ExcludeNullsOriginalCaseResolver <byte> >(); var actionContext = GetActionContext(MediaTypeHeaderValue.Parse(type), new MemoryStream()); var outputFormatterContext = new OutputFormatterWriteContext( actionContext.HttpContext, new TestHttpResponseStreamWriterFactory().CreateWriter, typeof(string), new object()) { ContentType = new StringSegment(type), ContentTypeIsServerDefined = true }; Assert.True(formatter.CanWriteResult(outputFormatterContext)); }
private async Task TestOutputFormatter <TResolver>(Type modelType) where TResolver : IJsonFormatterResolver <byte, TResolver>, new() { var model = _fixture.Create(modelType); var outputFormatterContext = GetOutputFormatterContext(model, modelType); var jsonFormatter = new SpanJsonOutputFormatter <TResolver>(); await jsonFormatter.WriteResponseBodyAsync(outputFormatterContext).ConfigureAwait(false); using (var body = outputFormatterContext.HttpContext.Response.Body) { Assert.NotNull(body); body.Position = 0; var expectedOutput = JsonSerializer.NonGeneric.Utf8.Serialize <TResolver>(model); var content = new byte[body.Length]; var length = await body.ReadAsync(content, 0, content.Length).ConfigureAwait(false); Assert.Equal(expectedOutput.Length, length); Assert.Equal(expectedOutput, content); } }