public void DeepClone_ListObject_AsReference(TypeModel model) { var item = new ItemClass() { Message = "Test" }; var obj = new ObjectTestsWrapper() { List = new List<object>() { item, "test" , 43 } }; var clone = (ObjectTestsWrapper)model.DeepClone(obj); Assert.AreEqual(3, clone.List.Count); var originalItem1 = (ItemClass)obj.List[0]; var originalItem2 = (string)obj.List[1]; var originalItem3 = (int)obj.List[2]; var cloneItem1 = (ItemClass)clone.List[0]; var cloneItem2 = (string)clone.List[1]; var cloneItem3 = (int)clone.List[2]; Assert.AreEqual(originalItem1.Message, cloneItem1.Message); Assert.AreEqual(originalItem2, cloneItem2); Assert.AreEqual(originalItem3, cloneItem3); }
public void DeepClone_DictionaryObject_AsReference(TypeModel model) { var item = new ItemClass() { Message = "Test" }; var obj = new ObjectTestsWrapper() { Dictionary = new Dictionary<int, object>() { {1, item}, {23, "Hello"}, {45, new DateTime(2012, 05, 02)} } }; var clone = (ObjectTestsWrapper)model.DeepClone(obj); Assert.AreEqual(3, clone.Dictionary.Count); var originalItem1 = (ItemClass)obj.Dictionary[1]; var originalItem2 = (string)obj.Dictionary[23]; var originalItem3 = (DateTime)obj.Dictionary[45]; var cloneItem1 = (ItemClass)clone.Dictionary[1]; var cloneItem2 = (string)clone.Dictionary[23]; var cloneItem3 = (DateTime)clone.Dictionary[45]; Assert.AreEqual(originalItem1.Message, cloneItem1.Message); Assert.AreEqual(originalItem2, cloneItem2); Assert.AreEqual(originalItem3, cloneItem3); }
public void DeepClone_KeyValuePairWithObject(TypeModel model) { var obj = new ObjectTestsWrapper() { KeyValuePair = new KeyValuePair<object, object>(new ItemClass() { Message = "Test" }, 5.0d) }; var clone = (ObjectTestsWrapper)model.DeepClone(obj); Assert.AreEqual(((ItemClass)obj.KeyValuePair.Key).Message, ((ItemClass)clone.KeyValuePair.Key).Message); Assert.AreEqual((double)obj.KeyValuePair.Value, (double)clone.KeyValuePair.Value); }