public async Task WithNonSeekableStream_UsingSystemTextJsonContentSerializer() { var model = new TestAliasObject { ShortNameForAlias = nameof(WithNonSeekableStream_UsingSystemTextJsonContentSerializer), ShortNameForJsonProperty = nameof(TestAliasObject) }; var localHandler = new MockHttpMessageHandler(); var settings = new RefitSettings(new SystemTextJsonContentSerializer()) { HttpMessageHandlerFactory = () => localHandler }; using var utf8BufferWriter = new PooledBufferWriter(); var utf8JsonWriter = new Utf8JsonWriter(utf8BufferWriter); System.Text.Json.JsonSerializer.Serialize(utf8JsonWriter, model); using var sourceStream = utf8BufferWriter.DetachStream(); using var contentStream = new ThrowOnGetLengthMemoryStream { CanGetLength = true }; sourceStream.CopyTo(contentStream); contentStream.Position = 0; contentStream.CanGetLength = false; var httpContent = new StreamContent(contentStream) { Headers = { ContentType = new MediaTypeHeaderValue("application/json") { CharSet = Encoding.UTF8.WebName } } }; var expectedResponse = new HttpResponseMessage(HttpStatusCode.OK) { Content = httpContent }; expectedResponse.Content.Headers.ContentType = new MediaTypeHeaderValue("application/json"); expectedResponse.StatusCode = HttpStatusCode.OK; localHandler.Expect(HttpMethod.Get, "http://api/aliasTest").Respond(req => expectedResponse); var localFixture = RestService.For <IMyAliasService>("http://api", settings); var result = await localFixture.GetTestObject(); Assert.NotNull(result); Assert.Equal(nameof(WithNonSeekableStream_UsingSystemTextJsonContentSerializer), result.ShortNameForAlias); Assert.Equal(nameof(TestAliasObject), result.ShortNameForJsonProperty); }
public void StreamDeserialization_UsingSystemTextJsonContentSerializer_SetsCorrectHeaders() { var model = new TestAliasObject { ShortNameForAlias = nameof(StreamDeserialization_UsingSystemTextJsonContentSerializer), ShortNameForJsonProperty = nameof(TestAliasObject) }; var serializer = new SystemTextJsonContentSerializer(); var json = serializer.ToHttpContent(model); Assert.NotNull(json.Headers.ContentType); Assert.Equal("utf-8", json.Headers.ContentType.CharSet); Assert.Equal("application/json", json.Headers.ContentType.MediaType); }
public async Task StreamDeserialization_UsingSystemTextJsonContentSerializer_SetsCorrectHeaders() { var model = new TestAliasObject { ShortNameForAlias = nameof(StreamDeserialization_UsingSystemTextJsonContentSerializer), ShortNameForJsonProperty = nameof(TestAliasObject) }; var serializer = new SystemTextJsonContentSerializer(); var json = await serializer.SerializeAsync(model); Assert.NotNull(json.Headers.ContentLength); Assert.True(json.Headers.ContentLength.Value > 0); Assert.NotNull(json.Headers.ContentType); Assert.Equal("utf-8", json.Headers.ContentType.CharSet); Assert.Equal("application/json", json.Headers.ContentType.MediaType); }
public async Task StreamDeserialization_UsingSystemTextJsonContentSerializer() { var model = new TestAliasObject { ShortNameForAlias = nameof(StreamDeserialization_UsingSystemTextJsonContentSerializer), ShortNameForJsonProperty = nameof(TestAliasObject) }; var serializer = new SystemTextJsonContentSerializer(); var json = serializer.ToHttpContent(model); var result = await serializer.FromHttpContentAsync <TestAliasObject>(json); Assert.NotNull(result); Assert.Equal(model.ShortNameForAlias, result.ShortNameForAlias); Assert.Equal(model.ShortNameForJsonProperty, result.ShortNameForJsonProperty); }
public async Task StreamDeserialization_UsingSystemTextJsonContentSerializer() { var model = new TestAliasObject { ShortNameForAlias = nameof(StreamDeserialization_UsingSystemTextJsonContentSerializer), ShortNameForJsonProperty = nameof(TestAliasObject) }; var serializer = new SystemTextJsonContentSerializer(); var json = await serializer.SerializeAsync(model); var stream = await json.ReadAsStreamAsync(); var result = await System.Text.Json.JsonSerializer.DeserializeAsync <TestAliasObject>(stream); Assert.NotNull(result); Assert.Equal(model.ShortNameForAlias, result.ShortNameForAlias); Assert.Equal(model.ShortNameForJsonProperty, result.ShortNameForJsonProperty); }