public void ShouldMarkCommandAsExecutedWhenExecuting()
        {
            var command = new TestableUndoableCommand();

            Assert.IsFalse(command.WasExecuted);

            command.Execute();

            Assert.IsTrue(command.WasExecuted);
        }
        public void ShouldNotCallUnExecuteCommandIfCommandWasNotExecuted()
        {
            var command = new TestableUndoableCommand();

            Assert.IsFalse(command.UnExecuteCommandCalled);

            command.UnExecute();

            Assert.IsFalse(command.ExecuteCommandCalled);
        }
        public void ShouldCallExecuteCommandWhenExecuting()
        {
            var command = new TestableUndoableCommand();

            Assert.IsFalse(command.ExecuteCommandCalled);

            command.Execute();

            Assert.IsTrue(command.ExecuteCommandCalled);
        }
Пример #4
0
        public void ShouldExecuteCommand()
        {
            ICaretaker caretaker = new Caretaker(this.eventAggregator);

            var command = new TestableUndoableCommand();

            Assert.IsFalse(command.ExecuteCommandCalled);

            caretaker.ExecuteCommand(command);

            Assert.IsTrue(command.ExecuteCommandCalled);
        }
Пример #5
0
        public void ShouldNotExecuteCommandIfWasAlreadyExecuted()
        {
            ICaretaker caretaker = new Caretaker(this.eventAggregator);

            var command = new TestableUndoableCommand();

            command.Execute();

            command.ExecuteCommandCalled = false;

            caretaker.ExecuteCommand(command);

            Assert.IsFalse(command.ExecuteCommandCalled);
        }
Пример #6
0
        public void ShouldUndoCommand()
        {
            ICaretaker caretaker = new Caretaker();

            var command = new TestableUndoableCommand();

            caretaker.ExecuteCommand(command);

            Assert.IsFalse(command.UnExecuteCommandCalled);

            caretaker.Undo();

            Assert.IsTrue(command.UnExecuteCommandCalled);
        }
Пример #7
0
        public void ShouldNotRedoCommandIfWasNotUndo()
        {
            ICaretaker caretaker = new Caretaker();

            var command = new TestableUndoableCommand();

            caretaker.ExecuteCommand(command);

            command.ExecuteCommandCalled = false;

            caretaker.Redo();

            Assert.IsFalse(command.ExecuteCommandCalled);
        }
Пример #8
0
        public void ShouldNotRedoIfNewCommandWasAdded()
        {
            ICaretaker caretaker = new Caretaker(this.eventAggregator);

            var command = new TestableUndoableCommand();

            var anotherCommand = new TestableUndoableCommand();

            caretaker.ExecuteCommand(command);

            caretaker.Undo();

            caretaker.ExecuteCommand(anotherCommand);

            command.ExecuteCommandCalled = false;

            caretaker.Redo();

            Assert.IsFalse(command.ExecuteCommandCalled);
        }
Пример #9
0
        public void ShouldTrimUndoStackIfUndoLevelLimitIsReached()
        {
            ICaretaker caretaker = new Caretaker(this.eventAggregator);

            caretaker.SetUndoLevel(1);

            var command        = new TestableUndoableCommand();
            var anotherCommand = new TestableUndoableCommand();

            caretaker.ExecuteCommand(command);

            caretaker.ExecuteCommand(anotherCommand);

            caretaker.Undo();

            Assert.IsTrue(anotherCommand.UnExecuteCommandCalled);

            caretaker.Undo();

            Assert.IsFalse(command.UnExecuteCommandCalled);
        }
Пример #10
0
        public void ShouldUndoARedoOperation()
        {
            ICaretaker caretaker = new Caretaker(this.eventAggregator);

            var command = new TestableUndoableCommand();

            caretaker.ExecuteCommand(command);

            caretaker.Undo();

            caretaker.Redo();

            Assert.IsTrue(command.UnExecuteCommandCalled);

            command.UnExecuteCommandCalled = false;

            Assert.IsFalse(command.UnExecuteCommandCalled);

            caretaker.Undo();

            Assert.IsTrue(command.UnExecuteCommandCalled);
        }