示例#1
0
文件: TestJson.cs 项目: klenin/Yuzu
        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);
        }
示例#2
0
文件: TestBinary.cs 项目: klenin/Yuzu
        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);
        }