Ejemplo n.º 1
0
        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));
        }
Ejemplo n.º 2
0
        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);
            }
        }