public void Converter_ObjectFactoryNestedWithTypeHint()
        {
            var container = new DoodleContainer
            {
                firstDoodle = new Doodle {
                    x = 1, y = 2, z = 3
                },
                secondDoodle = new Doodle {
                    x = 4, y = 5, z = 5
                }
            };
            var json = Json.ToJson(container, new JsonSettings {
                TypeNameHandling = TypeNameHandling.All
            });

            var settings = new JsonSettings {
                TypeConverters = new JsonTypeConverter[] { new ObjectFactoryConverter() }
            };
            var newContainer = Json.FromJson <DoodleContainer>(json, settings);

            Assert.IsTrue(newContainer.firstDoodle.wasCreatedByObjectFactory);
            Assert.IsTrue(newContainer.secondDoodle.wasCreatedByObjectFactory);

            Assert.AreEqual(container.firstDoodle.x, newContainer.firstDoodle.x);
            Assert.AreEqual(container.firstDoodle.y, newContainer.firstDoodle.y);
            Assert.AreEqual(container.firstDoodle.z, newContainer.firstDoodle.z);

            Assert.AreEqual(container.secondDoodle.x, newContainer.secondDoodle.x);
            Assert.AreEqual(container.secondDoodle.y, newContainer.secondDoodle.y);
            Assert.AreEqual(container.secondDoodle.z, newContainer.secondDoodle.z);
        }
Example #2
0
        public void Converter_ObjectFactoryNested()
        {
            var container = new DoodleContainer
            {
                firstDoodle = new Doodle {
                    x = 1, y = 2, z = 3
                },
                secondDoodle = new Doodle {
                    x = 4, y = 5, z = 5
                }
            };
            var json = Nson.ToNson(container);

            var settings = new NsonSettings {
                TypeConverters = new NsonTypeConverter[] { new ObjectFactoryConverter() }
            };
            var newContainer = Nson.FromNson <DoodleContainer>(json, settings);

            Assert.IsTrue(newContainer.firstDoodle.wasCreatedByObjectFactory);
            Assert.IsTrue(newContainer.secondDoodle.wasCreatedByObjectFactory);

            Assert.AreEqual(container.firstDoodle.x, newContainer.firstDoodle.x);
            Assert.AreEqual(container.firstDoodle.y, newContainer.firstDoodle.y);
            Assert.AreEqual(container.firstDoodle.z, newContainer.firstDoodle.z);

            Assert.AreEqual(container.secondDoodle.x, newContainer.secondDoodle.x);
            Assert.AreEqual(container.secondDoodle.y, newContainer.secondDoodle.y);
            Assert.AreEqual(container.secondDoodle.z, newContainer.secondDoodle.z);
        }