Example #1
0
        public void Given_a_CommandManager_When_a_Command_Aborts_Should_Not_Register_for_Undo()
        {
            var             aggregator = new Mock <IEventAggregator>();
            CommandManager  manager    = new CommandManager(aggregator.Object, SynchronizationContext.Current);
            AbortingCommand cmd        = new AbortingCommand();

            manager.Do(Execute.The(cmd));

            Assert.IsFalse(manager.CanUndo);
        }
Example #2
0
        public void Given_a_CommandManager_When_one_of_multiple_Commands_Aborts_Should_only_Register_the_other_Commands_for_Undo()
        {
            var                   aggregator = new Mock <IEventAggregator>();
            CommandManager        manager    = new CommandManager(aggregator.Object, SynchronizationContext.Current);
            IncrementByOneCommand incCmd     = new IncrementByOneCommand(1);
            AbortingCommand       cmd        = new AbortingCommand();
            IncrementBy5Command   inc5Cmd    = new IncrementBy5Command(1);

            manager.Do(Execute.The(incCmd));
            manager.Do(Execute.The(cmd));
            manager.Do(Execute.The(inc5Cmd));

            Assert.IsTrue(manager.UndoStack.Count == 2);
            Assert.IsTrue(manager.UndoStack.Pop().Commands[0] == inc5Cmd);
            Assert.IsTrue(manager.UndoStack.Pop().Commands[0] == incCmd);
        }