예제 #1
0
        public void ExecuteCommand_ClearsUndoHistory()
        {
            var commandExecutionManager = new CommandExecutionManager();
            var commandMock             = new Mock <ICommand>();

            commandExecutionManager.ExecuteCommand(commandMock.Object);
            commandExecutionManager.Undo();

            commandExecutionManager.ExecuteCommand(commandMock.Object);

            Assert.Throws <InvalidOperationException>(() => commandExecutionManager.Redo());
        }
예제 #2
0
        public void ExecuteCommand_NullCommand_ArgumentNullException()
        {
            var commandExecutionManager = new CommandExecutionManager();
            var ex = Assert.Throws <ArgumentNullException>(
                () => commandExecutionManager.ExecuteCommand(null));

            Assert.That(ex.ParamName, Is.EqualTo(ExecuteCommandParam));
        }
예제 #3
0
        public void ExecuteCommand_ExecutesCommand()
        {
            var commandExecutionManager = new CommandExecutionManager();
            var commandMock             = new Mock <ICommand>();

            commandExecutionManager.ExecuteCommand(commandMock.Object);

            commandMock.Verify(c => c.Execute(), Times.Once());
        }
예제 #4
0
        public void Undo_PerformsUndo()
        {
            var commandExecutionManager = new CommandExecutionManager();
            var commandMock             = new Mock <ICommand>();

            commandExecutionManager.ExecuteCommand(commandMock.Object);

            commandExecutionManager.Undo();

            commandMock.Verify(c => c.Undo(), Times.Once());
        }
예제 #5
0
        public void Redo_PerformsRedo()
        {
            var commandExecutionManager = new CommandExecutionManager();
            var commandMock             = new Mock <ICommand>();

            commandExecutionManager.ExecuteCommand(commandMock.Object);
            commandExecutionManager.Undo();

            commandExecutionManager.Redo();

            commandMock.Verify(c => c.Execute(), Times.Exactly(2));
        }