示例#1
0
            public void CanRedoTest()
            {
                var mementoService = new MementoService();
                Assert.IsFalse(mementoService.CanUndo);

                mementoService.Add(new MockUndo());
                Assert.IsTrue(mementoService.CanUndo);

                mementoService.Undo();
                Assert.IsFalse(mementoService.CanRedo);

                mementoService.Add(new MockUndo(true));
                Assert.IsTrue(mementoService.CanUndo);

                mementoService.Undo();
                Assert.IsFalse(mementoService.CanUndo);
                Assert.IsTrue(mementoService.CanRedo);

                mementoService.Redo();
                Assert.IsTrue(mementoService.CanUndo);
                Assert.IsFalse(mementoService.CanRedo);
            }
示例#2
0
            public void HandlesDoubleRedo()
            {
                var obj = new MockModel {Value = "value1"};
                var service = new MementoService();

                service.RegisterObject(obj);
                obj.Value = "value2";
                obj.Value = "value3";

                service.Undo();
                Assert.AreEqual("value2", obj.Value);

                service.Undo();
                Assert.AreEqual("value1", obj.Value);

                service.Redo();
                Assert.AreEqual("value2", obj.Value);

                service.Redo();
                Assert.AreEqual("value3", obj.Value);
            }
示例#3
0
            public void SetProperty()
            {
                var instance = new IniEntry();
                var action = new PropertyChangeUndo(instance, "Key", "previousValue", "nextValue");
                var mementoService = new MementoService();

                mementoService.Add(action);
                Assert.AreEqual(IniEntry.KeyProperty.GetDefaultValue(), instance.Key);

                mementoService.Undo();
                Assert.AreEqual("previousValue", instance.Key);

                mementoService.Redo();
                Assert.AreEqual("nextValue", instance.Key);
            }
示例#4
0
            public void RedoTest()
            {
                var mementoService = new MementoService();
                var undo1 = new MockUndo(true);

                mementoService.Add(undo1);
                mementoService.Undo();
                Assert.IsTrue(undo1.UndoCalled);
                Assert.IsFalse(undo1.RedoCalled);
                Assert.IsTrue(mementoService.CanRedo);

                mementoService.Redo();
                Assert.IsTrue(undo1.RedoCalled);
                Assert.IsFalse(mementoService.CanRedo);
            }
示例#5
0
            public void CallActions()
            {
                var value = false;
                var mementoService = new MementoService();
                var action = new ActionUndo(this, () => value = true, () => value = false);

                mementoService.Add(action);
                Assert.IsFalse(value);

                mementoService.Undo();
                Assert.IsTrue(value);

                mementoService.Redo();
                Assert.IsFalse(value);
            }