public void TestCollection() { var js = new JsonSerializer(); js.JsonOptions.Indent = ""; var jd = new JsonDeserializer(); var v0 = new SampleWithCollection(); v0.A.Add(new SampleInterfaced { X = 9 }); v0.B.Add(7); v0.B.Add(6); var result0 = js.ToString(v0); Assert.AreEqual( "{\n" + "\"A\":[\n{\n\"class\":\"YuzuTest.SampleInterfaced, YuzuTest\",\n\"X\":9\n}\n],\n" + "\"B\":[\n7,\n6\n]\n" + "}", result0); var w0 = new SampleWithCollection(); jd.FromString(w0, result0); Assert.AreEqual(1, w0.A.Count); Assert.IsInstanceOfType(w0.A.First(), typeof(SampleInterfaced)); Assert.AreEqual(9, w0.A.First().X); CollectionAssert.AreEqual(new int[] { 7, 6 }, w0.B.ToList()); var w1 = (SampleWithCollection)SampleWithCollection_JsonDeserializer.Instance.FromString(result0); Assert.AreEqual(1, w1.A.Count); Assert.IsInstanceOfType(w1.A.First(), typeof(SampleInterfaced)); Assert.AreEqual(9, w1.A.First().X); CollectionAssert.AreEqual(new int[] { 7, 6 }, w1.B.ToList()); var v2 = new SampleCollection<int> { 2, 5, 4 }; var result1 = js.ToString(v2); Assert.AreEqual("[\n2,\n5,\n4\n]", result1); var w2 = (SampleCollection<int>)SampleCollection_Int32_JsonDeserializer.Instance.FromString(result1); CollectionAssert.AreEqual(v2.ToList(), w2.ToList()); var w2g = (SampleExplicitCollection<int>) SampleExplicitCollection_Int32_JsonDeserializer.Instance.FromString(result1); CollectionAssert.AreEqual(v2.ToList(), w2g.ToList()); var v3 = new SampleConcreteCollection { 8, 3, 1 }; var result3 = js.ToString(v3); Assert.AreEqual("[\n8,\n3,\n1\n]", result3); var w3 = new SampleConcreteCollection(); jd.FromString(w3, result3); CollectionAssert.AreEqual(v3.ToList(), w3.ToList()); var w3g = (SampleConcreteCollection) SampleConcreteCollection_JsonDeserializer.Instance.FromString(result3); CollectionAssert.AreEqual(v3.ToList(), w3g.ToList()); }
public void TestCollection() { var bs = new BinarySerializer(); var bd = new BinaryDeserializer(); var v0 = new SampleWithCollection(); v0.A.Add(new SampleInterfaced { X = 9 }); v0.B.Add(7); v0.B.Add(6); var result0 = bs.ToBytes(v0); Assert.AreEqual( "20 01 00 " + XS(typeof(SampleWithCollection)) + " 02 00 " + XS("A", RoughType.Sequence) + " " + XS(RoughType.Record) + " " + XS("B", RoughType.Sequence) + " " + XS(RoughType.Int) + " 01 00 01 00 00 00 02 00 " + XS(typeof(SampleInterfaced)) + " 01 00 " + XS("X", RoughType.Int) + " 01 00 09 00 00 00 00 00" + " 02 00 02 00 00 00 07 00 00 00 06 00 00 00 00 00", XS(result0)); var w0 = new SampleWithCollection(); bd.FromBytes(w0, result0); Assert.AreEqual(1, w0.A.Count); Assert.IsInstanceOfType(w0.A.First(), typeof(SampleInterfaced)); Assert.AreEqual(9, w0.A.First().X); CollectionAssert.AreEqual(new int[] { 7, 6 }, w0.B.ToList()); var w1 = (SampleWithCollection)((new BinaryDeserializerGen()).FromBytes(result0)); Assert.AreEqual(1, w1.A.Count); Assert.IsInstanceOfType(w1.A.First(), typeof(SampleInterfaced)); Assert.AreEqual(9, w1.A.First().X); CollectionAssert.AreEqual(new int[] { 7, 6 }, w1.B.ToList()); var v2 = new SampleConcreteCollection { 2, 5, 4 }; var result1 = bs.ToBytes(v2); Assert.AreEqual("21 05 03 00 00 00 02 00 00 00 05 00 00 00 04 00 00 00", XS(result1)); SampleConcreteCollection w2 = new SampleConcreteCollection(); bd.FromBytes(w2, result1); CollectionAssert.AreEqual(v2.ToList(), w2.ToList()); }