public void DeepClone_DictionaryBaseCollectionRef_AsReference(TypeModel model) { var itemClass = new ItemClass() { Message = "Hi" }; var inner = new DictionaryBaseCollection<int, IItemClass>() { { 12, itemClass }, { 726, itemClass }, }; var obj = new DictionaryBaseCollectionWrapper<int, IItemClass>() { Collection = inner }; var clone = (DictionaryBaseCollectionWrapper<int, IItemClass>)model.DeepClone(obj); Assert.AreEqual(obj.Collection.Count, clone.Collection.Count); Assert.AreEqual(obj.Collection[12].Message, clone.Collection[12].Message); Assert.AreEqual(obj.Collection[726].Message, clone.Collection[726].Message); Assert.IsTrue(object.ReferenceEquals(obj.Collection[12], obj.Collection[726]), "Original reference failed"); Assert.IsTrue(object.ReferenceEquals(clone.Collection[12], clone.Collection[726]), "Clone reference not maintained"); }
public void DeepClone_DictionaryBaseCollection_AsReference(TypeModel model) { var inner = new DictionaryBaseCollection<int, IItemClass>() { { 12, new ItemClass() { Message = "Hi" }}, { 726, new ItemClass() { Message = "There bro" }}, }; var obj = new DictionaryBaseCollectionWrapper<int, IItemClass>() { Collection = inner }; var clone = (DictionaryBaseCollectionWrapper<int, IItemClass>)model.DeepClone(obj); Assert.AreEqual(obj.Collection.Count, clone.Collection.Count); Assert.AreEqual(obj.Collection[12].Message, clone.Collection[12].Message); Assert.AreEqual(obj.Collection[726].Message, clone.Collection[726].Message); }