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