Ejemplo n.º 1
0
        public void UndoRedo_GroupTest_SingleGroupItemCollapses()
        {
            var undoredo = new UndoRedoManager();

            var group = new UndoableGroupAction("w/e");

            group.Add(new LambdaUndoableAction("Nothing", () => { }, () => { }));
            undoredo.ExecuteAction(group);
            Assert.IsTrue(undoredo.AnyUndos);
            Assert.AreEqual(1, undoredo.UndoStack.Count);
            Assert.AreEqual("Nothing", undoredo.UndoStack.First().DisplayName);
        }
Ejemplo n.º 2
0
        public void UndoRedo_GroupTest()
        {
            var manager = new UndoRedoManager();

            int value = 9;

            var groupAction = new UndoableGroupAction("Lots of math", "MATH");

            groupAction.Add(new LambdaUndoableAction("Add 3", () => value += 3, () => value -= 3));
            groupAction.Add(new LambdaUndoableAction("Div 2", () => value /= 2, () => value *= 2));


            Assert.IsFalse(manager.AnyUndos);
            Assert.IsFalse(manager.AnyRedos);
            Assert.AreEqual(0, manager.UndoStack.Count);
            Assert.AreEqual(0, manager.RedoStack.Count);

            manager.ExecuteAction(groupAction);
            Assert.AreEqual(6, value);
            Assert.IsTrue(manager.AnyUndos);
            Assert.IsFalse(manager.AnyRedos);
            Assert.AreEqual(1, manager.UndoStack.Count);
            Assert.AreEqual(0, manager.RedoStack.Count);

            Assert.IsTrue(manager.Undo());
            Assert.AreEqual(9, value);
            Assert.IsFalse(manager.AnyUndos);
            Assert.IsTrue(manager.AnyRedos);
            Assert.AreEqual(0, manager.UndoStack.Count);
            Assert.AreEqual(1, manager.RedoStack.Count);

            Assert.IsTrue(manager.Redo());
            Assert.AreEqual(6, value);
            Assert.IsTrue(manager.AnyUndos);
            Assert.IsFalse(manager.AnyRedos);
            Assert.AreEqual(1, manager.UndoStack.Count);
            Assert.AreEqual(0, manager.RedoStack.Count);
        }