public void Redo_RedoOperationAvailable_InvokesRedoOperation() { var target = new UndoManager(); var invokableMock = new Mock <ITarget>(MockBehavior.Strict); invokableMock.Setup(i => i.UndoOperation()) .Callback(() => target.RegisterInvokation(invokableMock.Object, i => i.RedoOperation())); invokableMock.Setup(i => i.RedoOperation()); target.RegisterInvokation(invokableMock.Object, i => i.UndoOperation()); target.Undo(); target.Redo(); invokableMock.Verify(i => i.UndoOperation(), Times.Once()); invokableMock.Verify(i => i.RedoOperation(), Times.Once()); Assert.False(target.CanUndo); Assert.False(target.CanRedo); }
public void Redo_NoRedoInvocationsRegistered_ThrowsException() { var target = new UndoManager(); Assert.Throws <InvalidOperationException>(() => target.Redo()); }