Esempio n. 1
0
        public void TestGenerated()
        {
            const string str =
                "{\n\"S1\":" +
                "{\n\"X\":345,\n\"Y\":\"test\"\n},\n" +
                "\"F\":222,\n" +
                "\"S2\":" +
                "{\n\"X\":-346,\n\"Y\":\"test1\"\n}\n" +
                "}";

            var jd = new Sample3_JsonDeserializer();
            var w = (Sample3)jd.FromString(str);
            Assert.AreEqual(345, w.S1.X);
            Assert.AreEqual("test", w.S1.Y);
            Assert.AreEqual(222, w.F);
            Assert.AreEqual(-346, w.S2.X);
            Assert.AreEqual("test1", w.S2.Y);

            var jdg = new JsonDeserializerGenerator();
            jdg.Assembly = GetType().Assembly;

            var w1 = new Sample1();
            jdg.FromString(w1, "{\"X\":88}");
            Assert.IsInstanceOfType(w1, typeof(Sample1));
            Assert.AreEqual(88, w1.X);

            var w2 = jdg.FromString("{\"class\":\"YuzuTest.Sample1, YuzuTest\",\"X\":99}");
            Assert.IsInstanceOfType(w2, typeof(Sample1));
            Assert.AreEqual(99, ((Sample1)w2).X);

            var w3 = new SampleMemberI();
            jdg.FromString(w3, "{\"class\":\"YuzuTest.SampleMemberI, YuzuTest\"}");
            Assert.AreEqual(71, ((SampleMemberI)w3).X);
        }
Esempio n. 2
0
        public void TestStruct()
        {
            var v = new SampleRect {
                A = new SamplePoint { X = 33, Y = 44 },
                B = new SamplePoint { X = 55, Y = 66 },
            };
            var js = new JsonSerializer();
            js.JsonOptions.Indent = "";
            js.JsonOptions.FieldSeparator = " ";
            js.JsonOptions.IgnoreCompact = true;
            var result = js.ToString(v);
            Assert.AreEqual("{ \"A\":{ \"X\":33, \"Y\":44 }, \"B\":{ \"X\":55, \"Y\":66 } }", result);

            var jd = new JsonDeserializer();
            var w = new SampleRect();
            jd.FromString(w, result);
            CheckSampleRect(v, w);

            w = (SampleRect)SampleRect_JsonDeserializer.Instance.FromString(result);
            CheckSampleRect(v, w);

            var jdg = new JsonDeserializerGenerator();
            jdg.Assembly = GetType().Assembly;
            var p = (SamplePoint)jdg.FromString(new SamplePoint(), "{ \"X\":34, \"Y\":45 }");
            Assert.AreEqual(34, p.X);
            Assert.AreEqual(45, p.Y);
        }