public void When_changing_a_scalar_property_then_redo_should_not_work() { //// Arrange var obj = new MockObservableObject(); obj.Name = "A"; var undoRedoManager = new UndoRedoManager(obj, new MockDispatcher()); Assert.IsFalse(undoRedoManager.CanRedo); Assert.IsFalse(undoRedoManager.CanUndo); //// Act obj.Name = "B"; undoRedoManager.Undo(); Assert.IsTrue(undoRedoManager.CanRedo); obj.Name = "C"; //// Assert Assert.IsFalse(undoRedoManager.CanRedo); }
public void When_adding_object_to_list_then_undo_should_work() { //// Arrange var obj = new MockObservableObject(); obj.List.Add(new MockObservableObject()); var undoRedoManager = new UndoRedoManager(obj, new MockDispatcher()); Assert.IsFalse(undoRedoManager.CanUndo); Assert.AreEqual(1, obj.List.Count); //// Act obj.List.Add(new MockObservableObject()); Assert.AreEqual(2, obj.List.Count); Assert.IsTrue(undoRedoManager.CanUndo); undoRedoManager.Undo(); //// Assert Assert.AreEqual(1, obj.List.Count); }