public void MaximumSupportedOperationsTest() { var mementoService = new MementoService(5); var listUndoOps = new List<MockUndo>(); for (var i = 0; i < 10; i++) { var memento = new MockUndo() {Value = i}; mementoService.Add(memento); listUndoOps.Add(memento); } var count = 0; while (mementoService.CanUndo) { mementoService.Undo(); count++; } for (var i = 0; i < 5; i++) { Assert.IsFalse(listUndoOps[i].UndoCalled); } for (var i = 5; i < 10; i++) { Assert.IsTrue(listUndoOps[i].UndoCalled); } Assert.AreEqual(count, mementoService.MaximumSupportedBatches); }
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); }
public void CanUndoTest() { var mementoService = new MementoService(); Assert.IsFalse(mementoService.CanUndo); mementoService.Add(new MockUndo()); Assert.IsTrue(mementoService.CanUndo); mementoService.Undo(); Assert.IsFalse(mementoService.CanUndo); }
public void HandlesDoubleUndo() { 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); }
public void UndoTest() { var mementoService = new MementoService(); var undo1 = new MockUndo(); var undo2 = new MockUndo(); mementoService.Add(undo1); mementoService.Add(undo2); mementoService.Undo(); Assert.IsTrue(undo2.UndoCalled); Assert.IsFalse(undo1.UndoCalled); Assert.IsTrue(mementoService.CanUndo); }
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); }