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); }
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); }