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); }
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); }