Ejemplo n.º 1
0
        public void Deserialize_ByteArray_WithICustomObjectCreator_CreatesCustomObjects()
        {
            // Arrange

            var creator = new FakeCustomObjectCreator();

            var settings = new JsonSerializerSettings()
            {
                ContractResolver = new CamelCasePropertyNamesContractResolver()
            };

            var serializer = new DefaultSerializer(settings, settings)
            {
                DeserializationOptions = new DeserializationOptions()
                {
                    CustomObjectCreator = creator
                }
            };

            var jsonBuffer = Encoding.UTF8.GetBytes("{\"subNode\":{\"property\":\"value\"}}");

            // Act

            var result = serializer.Deserialize <JsonDocument>(jsonBuffer, 0, jsonBuffer.Length);

            // Assert

            Assert.NotNull(result);
            Assert.NotNull(result.SubNode);
            Assert.AreEqual(typeof(DocumentSubNodeInherited), result.SubNode.GetType());
            Assert.AreEqual("value", result.SubNode.Property);
        }
        public void Deserialize_Stream_WithICustomObjectCreator_CreatesCustomObjects()
        {
            // Arrange

            var creator = new FakeCustomObjectCreator();

            var settings = new JsonSerializerSettings()
            {
                ContractResolver = new CamelCasePropertyNamesContractResolver()
            };

            var serializer = new DefaultSerializer(settings, settings)
            {
                DeserializationOptions = new DeserializationOptions()
                {
                    CustomObjectCreator = creator
                }
            };

            var stream = new MemoryStream(Encoding.UTF8.GetBytes("{\"subNode\":{\"property\":\"value\"}}"));

            // Act

            var result = serializer.Deserialize<JsonDocument>(stream);

            // Assert

            Assert.NotNull(result);
            Assert.NotNull(result.SubNode);
            Assert.AreEqual(typeof(DocumentSubNodeInherited), result.SubNode.GetType());
            Assert.AreEqual("value", result.SubNode.Property);
        }