public void TestDictionary() { var js = new JsonSerializer(); js.JsonOptions.Indent = ""; js.Options.TagMode = TagMode.Names; var jd = new JsonDeserializer(); jd.Options.TagMode = TagMode.Names; var v0 = new SampleDict { Value = 3, Children = new Dictionary<string, SampleDict> { { "a", new SampleDict { Value = 5, Children = new Dictionary<string, SampleDict>() } }, { "b", new SampleDict { Value = 7 } }, } }; var result0 = js.ToString(v0); Assert.AreEqual( "{\n\"Value\":3,\n\"Children\":{\n" + "\"a\":{\n\"Value\":5,\n\"Children\":{}\n},\n" + "\"b\":{\n\"Value\":7,\n\"Children\":null\n}\n" + "}\n}", result0); var w0 = new SampleDict(); jd.FromString(w0, result0); Assert.AreEqual(v0.Value, w0.Value); Assert.AreEqual(v0.Children.Count, w0.Children.Count); Assert.AreEqual(v0.Children["a"].Value, w0.Children["a"].Value); var w1 = (SampleDict)SampleDict_JsonDeserializer.Instance.FromString(result0); Assert.AreEqual(v0.Value, w1.Value); Assert.AreEqual(v0.Children.Count, w1.Children.Count); Assert.AreEqual(v0.Children["a"].Value, w1.Children["a"].Value); }
public void TestDictionary() { var bs = new BinarySerializer(); bs.Options.TagMode = TagMode.Names; var bd = new BinaryDeserializer(); bd.Options.TagMode = TagMode.Names; var bdg = new BinaryDeserializer(); bdg.Options.TagMode = TagMode.Names; var v0 = new SampleDict { Value = 3, Children = new Dictionary<string, SampleDict> { { "a", new SampleDict { Value = 5, Children = new Dictionary<string, SampleDict>() } }, { "b", new SampleDict { Value = 7 } }, } }; var result0 = bs.ToBytes(v0); Assert.AreEqual( "20 01 00 " + XS(typeof(SampleDict)) + " 02 00 " + XS("Value", RoughType.Int, "Children", RoughType.Mapping) + " 10 20" + " 01 00 03 00 00 00 02 00 02 00 00 00 " + XS("a") + " 01 00 01 00 05 00 00 00 02 00 00 00 00 00 00 00 " + XS("b") + " 01 00 01 00 07 00 00 00 02 00 FF FF FF FF 00 00 00 00", XS(result0)); var w0 = new SampleDict(); bd.FromBytes(w0, result0); Assert.AreEqual(v0.Value, w0.Value); Assert.AreEqual(v0.Children.Count, w0.Children.Count); Assert.AreEqual(v0.Children["a"].Value, w0.Children["a"].Value); var w1 = (SampleDict)bdg.FromBytes(result0); Assert.AreEqual(v0.Value, w1.Value); Assert.AreEqual(v0.Children.Count, w1.Children.Count); Assert.AreEqual(v0.Children["a"].Value, w1.Children["a"].Value); }