예제 #1
0
        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);
        }
예제 #2
0
        public void Redo_NoRedoInvocationsRegistered_ThrowsException()
        {
            var target = new UndoManager();

            Assert.Throws <InvalidOperationException>(() => target.Redo());
        }