Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        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);
                }
            }
        }
Esempio n. 3
0
        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);
        }
Esempio n. 4
0
        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);
        }
Esempio n. 5
0
        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);
        }
Esempio n. 6
0
        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);
        }
Esempio n. 7
0
        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);
        }
Esempio n. 8
0
        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)]);
        }
Esempio n. 9
0
        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);
        }
Esempio n. 10
0
        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);
        }
Esempio n. 11
0
        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);
        }
Esempio n. 12
0
        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);
        }
Esempio n. 13
0
        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);
        }
Esempio n. 14
0
        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);
        }
Esempio n. 15
0
        private static Answer BuildAnswer()
        {
            var fixture = new ExpressionTreeFixture();

            return(fixture.Create <Answer>());
        }