public void DeserializeDynamic() { var fixture = new ExpressionTreeFixture(); var data = fixture.Create <Answer>(); var serialized = JsonSerializer.Generic.Utf16.Serialize(data); Assert.NotNull(serialized); var deserialized = JsonSerializer.Generic.Utf16.Deserialize <dynamic>(serialized); Assert.NotNull(deserialized); var dt = (DateTime?)deserialized.locked_date; Assert.NotNull(dt); foreach (var comment in deserialized.comments) { Assert.NotNull(comment); } for (var i = 0; i < deserialized.comments.Length; i++) { var comment = deserialized.comments[i]; Assert.NotNull(comment); } var dict = (IDictionary <string, dynamic>)deserialized; Assert.NotNull(dict); }
public async Task PingPongLarge() { var uri = new UriBuilder(_fixture.BaseAddress) { Path = "api/test/PingPong" }; var fixture = new ExpressionTreeFixture(); var model = fixture.Create <TestObject>(); model.Hello = string.Join(", ", Enumerable.Repeat("Hello", 10000)); model.World = string.Join(", ", Enumerable.Repeat("World", 10000)); using (var message = new HttpRequestMessage(HttpMethod.Post, uri.Uri)) { message.Content = new ByteArrayContent(JsonSerializer.Generic.Utf8.Serialize <TestObject, AspNetCoreDefaultResolver <byte> >(model)); message.Content.Headers.ContentType = MediaTypeHeaderValue.Parse("application/json"); using (var response = await _fixture.Client.SendAsync(message).ConfigureAwait(false)) { Assert.True(response.IsSuccessStatusCode); var body = await response.Content.ReadAsByteArrayAsync().ConfigureAwait(false); var resultModel = JsonSerializer.Generic.Utf8.Deserialize <TestObject, AspNetCoreDefaultResolver <byte> >(body); Assert.Equal(model, resultModel); } } }
public void SerializeDeserializeDateTimeOffset() { var fixture = new ExpressionTreeFixture(); var dt = fixture.Create <DateTimeOffset>(); var serialized = JsonSerializer.Generic.Utf16.Serialize(dt); var deserialized = JsonSerializer.Generic.Utf16.Deserialize <DateTimeOffset>(serialized); Assert.Equal(dt, deserialized); }
public void CanDeserializeAllDynamicUtf8(Type modelType) { var fixture = new ExpressionTreeFixture(); var model = fixture.Create(modelType); var serialized = JsonSerializer.NonGeneric.Utf8.Serialize(model); Assert.NotNull(serialized); var deserialized = JsonSerializer.Generic.Utf8.Deserialize <dynamic>(serialized); Assert.NotNull(deserialized); Assert.Equal(model, deserialized, DynamicEqualityComparer.Default); }
public void CanSerializeDeserializeAllUtf8IntegerEnum(Type modelType) { var fixture = new ExpressionTreeFixture(); var model = fixture.Create(modelType); var serialized = JsonSerializer.NonGeneric.Utf8.Serialize <ExcludeNullCamelCaseIntegerEnumResolver <byte> >(model); Assert.NotNull(serialized); var deserialized = JsonSerializer.NonGeneric.Utf8.Deserialize <ExcludeNullCamelCaseIntegerEnumResolver <byte> >(serialized, modelType); Assert.NotNull(deserialized); Assert.IsType(modelType, deserialized); Assert.Equal(model, deserialized, GenericEqualityComparer.Default); }
public void CanSerializeDeserializeAllUtf16(Type modelType) { var fixture = new ExpressionTreeFixture(); var model = fixture.Create(modelType); var serialized = JsonSerializer.NonGeneric.Utf16.Serialize(model); Assert.NotNull(serialized); var deserialized = JsonSerializer.NonGeneric.Utf16.Deserialize(serialized, modelType); Assert.NotNull(deserialized); Assert.IsType(modelType, deserialized); Assert.Equal(model, deserialized, GenericEqualityComparer.Default); }
public void CanSerializeDeserializeAllMixed(Type modelType) { var fixture = new ExpressionTreeFixture(); var model = fixture.Create(modelType); var serialized = JsonSerializer.NonGeneric.Utf16.Serialize(model); var utf8Bytes = Encoding.UTF8.GetBytes(serialized); Assert.NotNull(serialized); var deserialized = JsonSerializer.NonGeneric.Utf8.Deserialize(utf8Bytes, modelType); Assert.NotNull(deserialized); Assert.IsType(modelType, deserialized); Assert.Equal(model, deserialized, GenericEqualityComparer.Default); }
public void DeserializeIntoPropertyBagUtf8() { var fixture = new ExpressionTreeFixture(); var model = fixture.Create <Answer>(); var output = JsonSerializer.Generic.Utf8.Serialize(model); Assert.NotNull(output); var propertyBag = JsonSerializer.Generic.Utf8.Deserialize <PropertyBag>(output); Assert.NotNull(propertyBag); Assert.NotEmpty(propertyBag.AdditionalValues); Assert.True(propertyBag.AdditionalValues.ContainsKey(nameof(Answer.answer_id))); Assert.Equal(model.title, (string)(dynamic)propertyBag.AdditionalValues[nameof(Answer.title)]); }
public void CanSerializeDeserializeAllMinifiedUtf16(Type modelType) { var fixture = new ExpressionTreeFixture(); var model = fixture.Create(modelType); var serialized = JsonSerializer.NonGeneric.Utf16.Serialize(model); var prettyPrinted = JsonSerializer.PrettyPrinter.Print(serialized); Assert.NotNull(prettyPrinted); var minified = JsonSerializer.Minifier.Minify(prettyPrinted); Assert.NotNull(minified); Assert.DoesNotContain("\r\n", minified); Assert.DoesNotContain(": ", minified); Assert.Equal(serialized, minified); }
public void CanSerializeDeserializeAllFullyEscapedUtf8(Type modelType) { var fixture = new ExpressionTreeFixture(); var model = fixture.Create(modelType); var serialized = JsonSerializer.NonGeneric.Utf16.Serialize(model); var encoded = EscapeHelper.NonAsciiEscape(serialized); Assert.NotNull(encoded); var encodedBytes = Encoding.UTF8.GetBytes(encoded); var deserialized = JsonSerializer.NonGeneric.Utf8.Deserialize(encodedBytes, modelType); Assert.NotNull(deserialized); Assert.IsType(modelType, deserialized); Assert.Equal(model, deserialized, GenericEqualityComparer.Default); }
public void CanSerializeDeserializeAllWithJil(Type modelType) { var fixture = new ExpressionTreeFixture(); var model = fixture.Create(modelType); var serialized = JSON.Serialize(model, Options.ISO8601ExcludeNullsIncludeInherited); Assert.NotNull(serialized); var deserialized = JsonSerializer.NonGeneric.Utf16.Deserialize(serialized, modelType); Assert.NotNull(deserialized); Assert.IsType(modelType, deserialized); Assert.Equal(model, deserialized, GenericEqualityComparer.Default); serialized = JsonSerializer.NonGeneric.Utf16.Serialize(model); deserialized = JSON.Deserialize(serialized, modelType, Options.ISO8601ExcludeNullsIncludeInherited); Assert.NotNull(deserialized); Assert.IsType(modelType, deserialized); Assert.Equal(model, deserialized, GenericEqualityComparer.Default); }
public void CanSerializeDeserializeAllPrettyPrintedUtf8(Type modelType) { var fixture = new ExpressionTreeFixture(); var model = fixture.Create(modelType); var serialized = JsonSerializer.NonGeneric.Utf8.Serialize(model); serialized = JsonSerializer.PrettyPrinter.Print(serialized); Assert.NotNull(serialized); var serializedAsString = Encoding.UTF8.GetString(serialized); Assert.Contains("\r\n", serializedAsString); Assert.Contains(": ", serializedAsString); var deserialized = JsonSerializer.NonGeneric.Utf8.Deserialize(serialized, modelType); Assert.NotNull(deserialized); Assert.IsType(modelType, deserialized); Assert.Equal(model, deserialized, GenericEqualityComparer.Default); }
public void CanSerializeDeserializeAllWithUtf8Json(Type modelType) { var fixture = new ExpressionTreeFixture(); var model = fixture.Create(modelType); var serialized = Utf8Json.JsonSerializer.NonGeneric.Serialize(model, StandardResolver.ExcludeNull); Assert.NotNull(serialized); var deserialized = JsonSerializer.NonGeneric.Utf8.Deserialize(serialized, modelType); Assert.NotNull(deserialized); Assert.IsType(modelType, deserialized); Assert.Equal(model, deserialized, GenericEqualityComparer.Default); serialized = JsonSerializer.NonGeneric.Utf8.Serialize(model); deserialized = Utf8Json.JsonSerializer.NonGeneric.Deserialize(modelType, serialized, StandardResolver.ExcludeNull); Assert.NotNull(deserialized); Assert.IsType(modelType, deserialized); Assert.Equal(model, deserialized, GenericEqualityComparer.Default); }
public void CanSerializeDeserializeAllPrettyPrintedUtf16(Type modelType) { var fixture = new ExpressionTreeFixture(); var model = fixture.Create(modelType); var serialized = JsonSerializer.NonGeneric.Utf16.Serialize(model); serialized = JsonSerializer.PrettyPrinter.Print(serialized); Assert.Contains("\r\n", serialized); Assert.Contains(": ", serialized); serialized = serialized.Replace(": ", " : "); // make sure we have even more whitespaces in serialized = serialized.Replace(",", " ,"); serialized = serialized.Replace("]", " ]"); serialized = serialized.Replace("[", " ["); Assert.NotNull(serialized); var deserialized = JsonSerializer.NonGeneric.Utf16.Deserialize(serialized, modelType); Assert.NotNull(deserialized); Assert.IsType(modelType, deserialized); Assert.Equal(model, deserialized, GenericEqualityComparer.Default); }
private static Answer BuildAnswer() { var fixture = new ExpressionTreeFixture(); return(fixture.Create <Answer>()); }