public void TestUndoRedoInProgressEvent() { // Completely undo the stack var stack = new ActionStackTestContainer(5); var action1 = new SimpleActionItem(); var action2 = new AnonymousActionItem("test", Enumerable.Empty <IDirtiable>(), () => stack.Stack.Add(action1), () => { }); stack.Stack.ActionItemsDiscarded += (sender, e) => { Assert.AreEqual(ActionItemDiscardType.UndoRedoInProgress, e.Type); Assert.AreEqual(1, e.ActionItems.Length); Assert.AreEqual(action1, e.ActionItems.First()); Assert.IsInstanceOf(typeof(ActionStack), sender); var localStack = (ActionStack)sender; var localAction = e.ActionItems.First(); Assert.AreEqual(1, localStack.ActionItems.Count()); Assert.AreEqual(action1, localAction); }; stack.Stack.Add(action2); stack.Stack.Undo(); stack.CheckRaiseCount(1, 0, 1, 1, 0); }
public void TestUndoRedoInProgressEvent() { // Completely undo the stack var stack = new ActionStackTestContainer(5); var action1 = new SimpleActionItem(); var action2 = new AnonymousActionItem("test", Enumerable.Empty<IDirtiable>(), () => stack.Stack.Add(action1), () => { }); stack.Stack.ActionItemsDiscarded += (sender, e) => { Assert.AreEqual(ActionItemDiscardType.UndoRedoInProgress, e.Type); Assert.AreEqual(1, e.ActionItems.Length); Assert.AreEqual(action1, e.ActionItems.First()); Assert.IsInstanceOf(typeof(ActionStack), sender); var localStack = (ActionStack)sender; var localAction = e.ActionItems.First(); Assert.AreEqual(1, localStack.ActionItems.Count()); Assert.AreEqual(action1, localAction); }; stack.Stack.Add(action2); stack.Stack.Undo(); stack.CheckRaiseCount(1, 0, 1, 1, 0); }