public void DeepClone_StackNull_AsReference(TypeModel model) { var stack = new StackOfClass() { Collection = null }; var clone = (StackOfClass)model.DeepClone(stack); Assert.IsNotNull(clone); Assert.IsNull(clone.Collection); }
public void DeepClone_StackWithNullItem_AsReference(TypeModel model) { var stack = new StackOfClass() { Collection = new Stack<ItemClass>() }; stack.Collection.Push(new ItemClass() { Message = "Hi there" }); stack.Collection.Push(null); stack.Collection.Push(new ItemClass() { Message = "How are you ?" }); var clone = (StackOfClass)model.DeepClone(stack); Assert.AreEqual(stack.Collection.Count, clone.Collection.Count); for (int i = 0; i < 3; i++) { var originalItem = stack.Collection.Pop(); var cloneItem = clone.Collection.Pop(); if (originalItem == null) { Assert.IsNull(cloneItem); } else { Assert.AreEqual(originalItem.Message, cloneItem.Message); } } }