private async Task TestInputFormatter <TResolver>(Type modelType) where TResolver : IJsonFormatterResolver <byte, TResolver>, new() { var httpContext = new DefaultHttpContext(); httpContext.Features.Set <IHttpResponseFeature>(new TestResponseFeature()); var model = _fixture.Create(modelType); var inputData = JsonSerializer.NonGeneric.Utf8.Serialize <TResolver>(model); using (httpContext.Request.Body = new MemoryStream(inputData)) { httpContext.Request.ContentType = "application/json"; var formatter = new SpanJsonInputFormatter <TResolver>(); var formatterContext = CreateInputFormatterContext(modelType, httpContext); // Act var result = await formatter.ReadAsync(formatterContext).ConfigureAwait(false); // Assert Assert.False(result.HasError); Assert.NotNull(result.Model); Assert.IsType(modelType, result.Model); Assert.Equal(model, result.Model, GenericEqualityComparer.Default); } }
public void SupportedMediaTypes(string type) { var httpContext = new DefaultHttpContext(); httpContext.Features.Set <IHttpResponseFeature>(new TestResponseFeature()); httpContext.Request.ContentType = type; var formatter = new SpanJsonInputFormatter <ExcludeNullsOriginalCaseResolver <byte> >(); var formatterContext = CreateInputFormatterContext(typeof(string), httpContext); Assert.True(formatter.CanRead(formatterContext)); }