This is an automated email from the ASF dual-hosted git repository. ptupitsyn pushed a commit to branch ignite-14067 in repository https://gitbox.apache.org/repos/asf/ignite.git
commit 275040a37bc43ac7379992c64126c410bd2fcacc Author: Pavel Tupitsyn <[email protected]> AuthorDate: Wed Jan 27 18:28:50 2021 +0300 add test --- .../Binary/BinarySelfTest.cs | 65 +++++++++++++++------- 1 file changed, 44 insertions(+), 21 deletions(-) diff --git a/modules/platforms/dotnet/Apache.Ignite.Core.Tests/Binary/BinarySelfTest.cs b/modules/platforms/dotnet/Apache.Ignite.Core.Tests/Binary/BinarySelfTest.cs index bf3b474..b167c46 100644 --- a/modules/platforms/dotnet/Apache.Ignite.Core.Tests/Binary/BinarySelfTest.cs +++ b/modules/platforms/dotnet/Apache.Ignite.Core.Tests/Binary/BinarySelfTest.cs @@ -45,7 +45,7 @@ namespace Apache.Ignite.Core.Tests.Binary /// Binary tests. /// </summary> [TestFixture] - public class BinarySelfTest { + public class BinarySelfTest { /** */ private Marshaller _marsh; @@ -59,7 +59,7 @@ namespace Apache.Ignite.Core.Tests.Binary }; /// <summary> - /// + /// /// </summary> [TestFixtureSetUp] public void BeforeTest() @@ -86,7 +86,7 @@ namespace Apache.Ignite.Core.Tests.Binary { return BinaryBasicNameMapper.FullNameInstance; } - + /** * <summary>Check write of primitive boolean.</summary> */ @@ -627,7 +627,7 @@ namespace Apache.Ignite.Core.Tests.Binary Assert.AreEqual(vals, newVals); } - + /// <summary> /// Test object with dates. /// </summary> @@ -650,7 +650,7 @@ namespace Apache.Ignite.Core.Tests.Binary DateTimeType otherObj = marsh.Unmarshal<DateTimeType>(marsh.Marshal(obj)); Assert.AreEqual(obj.Utc, otherObj.Utc); - Assert.AreEqual(obj.UtcNull, otherObj.UtcNull); + Assert.AreEqual(obj.UtcNull, otherObj.UtcNull); Assert.AreEqual(obj.UtcArr, otherObj.UtcArr); Assert.AreEqual(obj.UtcRaw, otherObj.UtcRaw); @@ -723,7 +723,7 @@ namespace Apache.Ignite.Core.Tests.Binary }, Objects = new object[] {1, 2, "3", 4.4} }; - + var data = marsh.Marshal(obj); var result = marsh.Unmarshal<GenericCollectionsType<PrimitiveFieldType, SerializableObject>>(data); @@ -786,7 +786,7 @@ namespace Apache.Ignite.Core.Tests.Binary [Test] public void TestProperty() { - ICollection<BinaryTypeConfiguration> typeCfgs = + ICollection<BinaryTypeConfiguration> typeCfgs = new List<BinaryTypeConfiguration>(); typeCfgs.Add(new BinaryTypeConfiguration(typeof(PropertyType))); @@ -1080,7 +1080,7 @@ namespace Apache.Ignite.Core.Tests.Binary }, CompactFooter = GetCompactFooter() }); - + var obj = new CollectionsType { Hashtable = new Hashtable {{1, 2}, {3, 4}}, @@ -1571,7 +1571,7 @@ namespace Apache.Ignite.Core.Tests.Binary PropertyType[,] objs = {{new PropertyType {Field1 = 123}}}; Assert.AreEqual(123, TestUtils.SerializeDeserialize(objs)[0, 0].Field1); - + var obj = new MultidimArrays { MultidimInt = ints, MultidimUInt = uints }; var resObj = TestUtils.SerializeDeserialize(obj); Assert.AreEqual(obj.MultidimInt, resObj.MultidimInt); @@ -1615,7 +1615,7 @@ namespace Apache.Ignite.Core.Tests.Binary }; var res = TestUtils.SerializeDeserialize(ptrs, raw); - + Assert.IsTrue(ptrs.ByteP == res.ByteP); Assert.IsTrue(ptrs.IntP == res.IntP); Assert.IsTrue(ptrs.VoidP == res.VoidP); @@ -1645,18 +1645,36 @@ namespace Apache.Ignite.Core.Tests.Binary IBinaryObject innerObject = _marsh.Unmarshal<IBinaryObject>(dataInner, BinaryMode.ForceBinary); BinaryObjectWrapper inner = innerObject.Deserialize<BinaryObjectWrapper>(); - + Assert.NotNull(inner); byte[] dataOuter = _marsh.Marshal(new BinaryObjectWrapper() { Val = innerObject }); IBinaryObject outerObject = _marsh.Unmarshal<IBinaryObject>(dataOuter, BinaryMode.ForceBinary); BinaryObjectWrapper outer = outerObject.Deserialize<BinaryObjectWrapper>(); - + Assert.NotNull(outer); Assert.IsTrue(outer.Val.Equals(innerObject)); } + /// <summary> + /// Tests serializing/deserializing object lists with nested lists. + /// </summary> + [Test] + public void TestNestedLists() + { + var list = new[] + { + new NestedList {Inner = new List<object>()}, + new NestedList {Inner = new List<object>()} + }; + + var bytes = _marsh.Marshal(list); + var res = _marsh.Unmarshal<NestedList[]>(bytes); + + Assert.AreEqual(2, res.Length); + } + private static void CheckKeepSerialized(BinaryConfiguration cfg, bool expKeep) { if (cfg.TypeConfigurations == null) @@ -1681,7 +1699,7 @@ namespace Apache.Ignite.Core.Tests.Binary Assert.AreEqual(expKeep, deserialized1 == deserialized2); } - private void CheckHandlesConsistency(HandleOuter outer, HandleInner inner, HandleOuter newOuter, + private void CheckHandlesConsistency(HandleOuter outer, HandleInner inner, HandleOuter newOuter, HandleInner newInner) { Assert.True(newOuter != null); @@ -1698,7 +1716,7 @@ namespace Apache.Ignite.Core.Tests.Binary Assert.AreEqual(inner.After, newInner.After); Assert.AreEqual(inner.RawBefore, newInner.RawBefore); Assert.True(newInner.RawOuter == newOuter); - Assert.AreEqual(inner.RawAfter, newInner.RawAfter); + Assert.AreEqual(inner.RawAfter, newInner.RawAfter); } private static void CheckObject(Marshaller marsh, OuterObjectType outObj, InnerObjectType inObj) @@ -1728,7 +1746,7 @@ namespace Apache.Ignite.Core.Tests.Binary return true; var type = obj as OuterObjectType; - + return type != null && Equals(InObj, type.InObj); } @@ -1775,7 +1793,7 @@ namespace Apache.Ignite.Core.Tests.Binary public ICollection Col1 { get; set; } public ArrayList Col2 { get; set; } - + public TestList Col3 { get; set; } public Hashtable Hashtable { get; set; } @@ -1798,8 +1816,8 @@ namespace Apache.Ignite.Core.Tests.Binary var that = obj as CollectionsType; - return that != null - && CompareCollections(Col1, that.Col1) + return that != null + && CompareCollections(Col1, that.Col1) && CompareCollections(Col2, that.Col2) && CompareCollections(Hashtable, that.Hashtable) && CompareCollections(Dict, that.Dict) @@ -1972,7 +1990,7 @@ namespace Apache.Ignite.Core.Tests.Binary } [Serializable] - public class PrimitiveFieldType + public class PrimitiveFieldType { public PrimitiveFieldType() { @@ -2456,7 +2474,7 @@ namespace Apache.Ignite.Core.Tests.Binary writer.WriteString("before", Before); writer0.WriteObject("inner", Inner); - + writer.WriteString("after", After); IBinaryRawWriter rawWriter = writer.GetRawWriter(); @@ -2738,7 +2756,7 @@ namespace Apache.Ignite.Core.Tests.Binary public int[,] MultidimInt { get; set; } public uint[,,] MultidimUInt { get; set; } - + public void WriteBinary(IBinaryWriter writer) { writer.WriteObject("JaggedInt", JaggedInt); @@ -2773,5 +2791,10 @@ namespace Apache.Ignite.Core.Tests.Binary { public IBinaryObject Val; } + + private class NestedList + { + public IList<object> Inner { get; set; } + } } }
