public void DeepClone_JaggedArrayInterface_AsReference(TypeModel model) { var obj = new ListOfListWrapper() { JaggedArray = new JaggedArray() { ICollection = new IItemClass[][] { new IItemClass[]{ new ItemClass() { Message = "1" }, new ItemClass() { Message = "2" } }, new IItemClass[]{ new ItemClass() { Message = "3" } } } } }; var clone = (ListOfListWrapper)model.DeepClone(obj); Assert.AreEqual(2, clone.JaggedArray.ICollection.Length); Assert.AreEqual(2, clone.JaggedArray.ICollection[0].Length); Assert.AreEqual(1, clone.JaggedArray.ICollection[1].Length); Assert.AreEqual("1", clone.JaggedArray.ICollection[0][0].Message); Assert.AreEqual("2", clone.JaggedArray.ICollection[0][1].Message); Assert.AreEqual("3", clone.JaggedArray.ICollection[1][0].Message); }
public void DeepClone_MultiDimensionalArrayInterface_AsReference(TypeModel model) { var obj = new ListOfListWrapper() { MultiDimensionalArray = new MultiDimensionalArray() { ICollection = new IItemClass[,] { { new ItemClass() { Message = "1" }, new ItemClass() { Message = "2" } }, { new ItemClass() { Message = "3" }, new ItemClass() { Message = "4" } } } } }; var clone = (ListOfListWrapper)model.DeepClone(obj); Assert.AreEqual(2, clone.MultiDimensionalArray.ICollection.Rank); Assert.AreEqual("1", clone.MultiDimensionalArray.ICollection[0, 0].Message); Assert.AreEqual("2", clone.MultiDimensionalArray.ICollection[0, 1].Message); Assert.AreEqual("3", clone.MultiDimensionalArray.ICollection[1, 0].Message); Assert.AreEqual("4", clone.MultiDimensionalArray.ICollection[1, 1].Message); }
public void DeepClone_ArrayOfLisInterface_AsReference(TypeModel model) { var obj = new ListOfListWrapper() { ArrayOfList = new ArrayOfList() { ICollection = new List<IItemClass>[] { new List<IItemClass>() { new ItemClass() { Message = "1" }, new ItemClass() { Message = "2" } }, new List<IItemClass>() { new ItemClass() { Message = "3" } } } } }; var clone = (ListOfListWrapper)model.DeepClone(obj); Assert.AreEqual(2, clone.ArrayOfList.ICollection.Length); Assert.AreEqual(2, clone.ArrayOfList.ICollection[0].Count); Assert.AreEqual(1, clone.ArrayOfList.ICollection[1].Count); Assert.AreEqual("1", clone.ArrayOfList.ICollection[0][0].Message); Assert.AreEqual("2", clone.ArrayOfList.ICollection[0][1].Message); Assert.AreEqual("3", clone.ArrayOfList.ICollection[1][0].Message); }
public void DeepClone_ListOfArrayNormal_AsReference(TypeModel model) { var obj = new ListOfListWrapper() { ListOfArray = new ListOfArray() { Collection = new List<ItemClass[]>() { new ItemClass[] { new ItemClass() { Message = "1" }, new ItemClass() { Message = "2" } }, new ItemClass[] { new ItemClass() { Message = "3" } } } } }; var clone = (ListOfListWrapper)model.DeepClone(obj); Assert.AreEqual(2, clone.ListOfArray.Collection.Count); Assert.AreEqual(2, clone.ListOfArray.Collection[0].Length); Assert.AreEqual(1, clone.ListOfArray.Collection[1].Length); Assert.AreEqual("1", clone.ListOfArray.Collection[0][0].Message); Assert.AreEqual("2", clone.ListOfArray.Collection[0][1].Message); Assert.AreEqual("3", clone.ListOfArray.Collection[1][0].Message); }
public void DeepClone_ListOfListOfListNormal_AsReference(TypeModel model) { var item = new ItemClass() { Message = "1" }; var obj = new ListOfListWrapper() { ListOfListOfList = new ListOfListOfList() { Collection = new List<List<List<ItemClass>>>() { new List<List<ItemClass>>() { new List<ItemClass>() { item, new ItemClass() { Message = "2" } } }, new List<List<ItemClass>>() { new List<ItemClass>() { new ItemClass() { Message = "3" } }, new List<ItemClass>() { new ItemClass() { Message = "4" }, item } } } } }; var clone = (ListOfListWrapper)model.DeepClone(obj); Assert.AreEqual(2, clone.ListOfListOfList.Collection.Count); Assert.AreEqual(1, clone.ListOfListOfList.Collection[0].Count); Assert.AreEqual(2, clone.ListOfListOfList.Collection[1].Count); Assert.AreEqual("1", clone.ListOfListOfList.Collection[0][0][0].Message); Assert.AreEqual("2", clone.ListOfListOfList.Collection[0][0][1].Message); Assert.AreEqual("3", clone.ListOfListOfList.Collection[1][0][0].Message); Assert.AreEqual("4", clone.ListOfListOfList.Collection[1][1][0].Message); Assert.AreEqual("1", clone.ListOfListOfList.Collection[1][1][1].Message); Assert.IsTrue(object.ReferenceEquals(obj.ListOfListOfList.Collection[0][0][0], obj.ListOfListOfList.Collection[1][1][1]), "Original reference failed"); Assert.IsTrue(object.ReferenceEquals(clone.ListOfListOfList.Collection[0][0][0], clone.ListOfListOfList.Collection[1][1][1]), "Clone reference not maintained"); }
public void DeepClone_ListOfListInterfaceInterface_AsReference(TypeModel model) { var obj = new ListOfListWrapper() { ListOfList = new ListOfList() { IICollection = new List<IList<int>>() { new List<int>() { 1, 2, 3 }, new List<int>() { 4, 5 } } } }; var clone = (ListOfListWrapper)model.DeepClone(obj); Assert.AreEqual(2, clone.ListOfList.IICollection.Count); Assert.AreEqual(1, clone.ListOfList.IICollection[0][0]); Assert.AreEqual(2, clone.ListOfList.IICollection[0][1]); Assert.AreEqual(3, clone.ListOfList.IICollection[0][2]); Assert.AreEqual(4, clone.ListOfList.IICollection[1][0]); Assert.AreEqual(5, clone.ListOfList.IICollection[1][1]); }
public void DeepClone_ListOfListReferenceItem_AsReference(TypeModel model) { var list = new List<int>() { 1, 2, 3 }; var obj = new ListOfListWrapper() { ListOfList = new ListOfList() { Collection = new List<List<int>>() { list, list } } }; var clone = (ListOfListWrapper)model.DeepClone(obj); Assert.AreEqual(2, clone.ListOfList.Collection.Count); Assert.AreEqual(1, clone.ListOfList.Collection[0][0]); Assert.AreEqual(2, clone.ListOfList.Collection[0][1]); Assert.AreEqual(3, clone.ListOfList.Collection[0][2]); Assert.AreEqual(1, clone.ListOfList.Collection[1][0]); Assert.AreEqual(2, clone.ListOfList.Collection[1][1]); Assert.AreEqual(3, clone.ListOfList.Collection[1][2]); Assert.IsTrue(object.ReferenceEquals(obj.ListOfList.Collection[0], obj.ListOfList.Collection[1]), "Original reference failed"); Assert.IsTrue(object.ReferenceEquals(clone.ListOfList.Collection[0], clone.ListOfList.Collection[1]), "Clone reference not maitained"); }