예제 #1
0
        public void DynamicObjectWithKnownMembersUtf8()
        {
            var list = new List <string> {
                "Hello", "World"
            };
            dynamic dynamicObject = new DynamicObjectWithKnownMembers();

            dynamicObject.Value     = 5;
            dynamicObject.Text      = "Hello World";
            dynamicObject.Supported = new List <string> {
                "Hello", "World"
            };

            var serialized = JsonSerializer.Generic.Utf8.Serialize(dynamicObject);

            Assert.NotNull(serialized);
            var deserialized = JsonSerializer.Generic.Utf8.Deserialize <DynamicObjectWithKnownMembers>(serialized);

            Assert.NotNull(deserialized);
            Assert.Equal(5, (int)deserialized.Value);
            var supported = (List <string>)deserialized.Supported;

            Assert.NotEmpty(supported);
            Assert.Equal(list, supported);
            Assert.Equal("Hello World", (string)deserialized.Text);
        }
예제 #2
0
        public void DynamicObjectWithKnownMembersUtf8CamelCase()
        {
            var list = new List <string> {
                "Hello", "World"
            };
            dynamic dynamicObject = new DynamicObjectWithKnownMembers();

            dynamicObject.Value        = 5;
            dynamicObject.Text         = "Hello World";
            dynamicObject.Supported    = list;
            dynamicObject.DynamicValue = "Hello Universe";
            var serialized = JsonSerializer.Generic.Utf8.Serialize <DynamicObjectWithKnownMembers, ExcludeNullsCamelCaseResolver <byte> >(dynamicObject);

            Assert.NotNull(serialized);
            var serializedText = Encoding.UTF8.GetString(serialized);

            Assert.Contains("\"text\":", serializedText);
            Assert.Contains("\"value\":", serializedText);
            Assert.Contains("\"supported\":", serializedText);
            Assert.Contains("\"dynamicValue\":", serializedText);
            var deserialized = JsonSerializer.Generic.Utf8.Deserialize <DynamicObjectWithKnownMembers, ExcludeNullsCamelCaseResolver <byte> >(serialized);

            Assert.NotNull(deserialized);
            Assert.Equal(5, (int)deserialized.Value);
            var supported = (List <string>)deserialized.Supported;

            Assert.NotEmpty(supported);
            Assert.Equal(list, supported);
            Assert.Equal("Hello World", (string)deserialized.text);
            Assert.Equal("Hello Universe", (string)deserialized.dynamicValue);
        }
예제 #3
0
        public void DynamicObjectWithKnownMembersNotSupportedUtf8()
        {
            dynamic dynamicObject = new DynamicObjectWithKnownMembers();

            dynamicObject.Value        = 5;
            dynamicObject.Text         = "Hello World";
            dynamicObject.NotSupported = new ConcreteMember();

            var serialized = JsonSerializer.Generic.Utf8.Serialize(dynamicObject);

            Assert.NotNull(serialized);
            Assert.Throws <NotSupportedException>(() => JsonSerializer.Generic.Utf8.Deserialize <DynamicObjectWithKnownMembers>(serialized));
        }
예제 #4
0
        public void DynamicObjectWithKnownMembersUtf8()
        {
            dynamic dynamicObject = new DynamicObjectWithKnownMembers();

            dynamicObject.Value = 5;

            var serialized = JsonSerializer.Generic.Utf8.Serialize(dynamicObject);

            Assert.NotNull(serialized);
            var deserialized = JsonSerializer.Generic.Utf8.Deserialize <dynamic>(serialized);

            Assert.NotNull(deserialized);
            Assert.Equal(5, (int)dynamicObject.Value);
        }