public void Test() { var originator = new Originator(); originator.SaveCheckpoint(); originator.IncreaseY(); originator.DecreaseX(); originator.SaveCheckpoint(); originator.UpdateX(2); originator.SaveCheckpoint(); originator.UpdateX(3); originator.IncreaseY(); Assert.AreEqual <int>(3, originator.Current.X); Assert.AreEqual <int>(2, originator.Current.Y); originator.Undo(); Assert.AreEqual <int>(2, originator.Current.X); Assert.AreEqual <int>(1, originator.Current.Y); originator.Undo(); Assert.AreEqual <int>(-1, originator.Current.X); Assert.AreEqual <int>(1, originator.Current.Y); }
public void Test1() { Originator ori = new Originator(); ori.SaveCheckpoint(); // x = 0, y = 0 ori.IncreaseY(); ori.DecreaseX(); ori.SaveCheckpoint(); // x = -1, y = 1 ori.UpdateX(2); ori.SaveCheckpoint(); // x = 2, y = 1 ori.UpdateX(3); ori.IncreaseY(); // x = 3, y = 1 Assert.AreEqual(3, ori.Current.X); Assert.AreEqual(2, ori.Current.Y); ori.Undo(); Assert.AreEqual(2, ori.Current.X); Assert.AreEqual(1, ori.Current.Y); ori.Undo(); Assert.AreEqual(-1, ori.Current.X); Assert.AreEqual(1, ori.Current.Y); }
public void Main() { var o1 = new Originator(); o1.IncreaseY(); o1.SaveCheckpoint(1); o1.IncreaseY(); o1.SaveCheckpoint(2); var o2 = new Originator(); o2.UpdateX(3); o2.SaveCheckpoint(2); o1.Undo(1); Assert.AreEqual <int>(0, o1.Current.X); Assert.AreEqual <int>(1, o1.Current.Y); o2.Undo(2); Assert.AreEqual <int>(3, o2.Current.X); Assert.AreEqual <int>(0, o2.Current.Y); }
public void Main() { // 定义两个独立的发起者实例,他们分别修改状态 var o1 = new Originator(); o1.IncreaseY(); // x = 0; y = 1; o1.SaveCheckpoint(1); o1.IncreaseY(); // x = 0; y = 2 o1.SaveCheckpoint(2); var o2 = new Originator(); o2.UpdateX(3); // x = 3; y = 0 o2.SaveCheckpoint(2); // 验证发起者类型可以借助外部持久机制保存多分 // 备案,而且不同实例可以独立使用持久机制 o1.Undo(1); Assert.AreEqual <int>(0, o1.Current.X); Assert.AreEqual <int>(1, o1.Current.Y); o2.Undo(2); Assert.AreEqual <int>(3, o2.Current.X); Assert.AreEqual <int>(0, o2.Current.Y); }
public void Test() { Originator originator = new Originator(); // 保存原发器刚初始化后的状态 originator.SaveCheckpoint(); // x = 0, y = 0 // 对原发器进行修改 1 originator.IncreaseY(); originator.DecreaseX(); originator.SaveCheckpoint(); // x = -1, y = 1 // 对原发器进行修改 2 originator.UpdateX(2); originator.SaveCheckpoint(); // x = 2, y = 1 // 对原发器进行修改 3 originator.UpdateX(3); originator.IncreaseY(); // x = 3, y = 2 // 确认Undo前的状态 Assert.AreEqual <int>(3, originator.Current.X); Assert.AreEqual <int>(2, originator.Current.Y); // 确认备忘录的栈式恢复作用——恢复到修改 originator.Undo(); Assert.AreEqual <int>(2, originator.Current.X); Assert.AreEqual <int>(1, originator.Current.Y); // 确认备忘录的栈式恢复作用——恢复到修改1 originator.Undo(); Assert.AreEqual <int>(-1, originator.Current.X); Assert.AreEqual <int>(1, originator.Current.Y); }
public void Test() { Originator originator = new Originator(); // 保存原发器刚初始化后的状态 originator.SaveCheckpoint(); // 对原发器进行操作,验证状态的修改 originator.IncreaseY(); originator.DecreaseX(); // 确认备忘录的恢复作用 originator.Undo(); Assert.AreEqual <int>(0, originator.Current.Y); Assert.AreEqual <int>(0, originator.Current.X); }
public void Test1() { Originator ori = new Originator(); Assert.AreEqual(0, ori.Current.Y); Assert.AreEqual(0, ori.Current.X); IMemento <Position> m1 = ori.Memento; ori.IncreaseY(); ori.DecreaseX(); Assert.AreEqual(1, ori.Current.Y); Assert.AreEqual(-1, ori.Current.X); ori.Memento = m1; Assert.AreEqual(0, ori.Current.Y); Assert.AreEqual(0, ori.Current.X); }
public void Test() { var originator = new Originator(); Assert.AreEqual <int>(0, originator.Current.Y); Assert.AreEqual <int>(0, originator.Current.X); // 保存发起者刚初始化的状态 var m1 = originator.Memento; // 对发起者进行操作,验证状态的修改 originator.IncreaseY(); originator.DecreaseX(); Assert.AreEqual <int>(1, originator.Current.Y); Assert.AreEqual <int>(-1, originator.Current.X); // 确认备忘录的恢复作用 originator.Memento = m1; Assert.AreEqual <int>(0, originator.Current.Y); Assert.AreEqual <int>(0, originator.Current.X); }
public void Test() { Originator originator = new Originator(); Assert.AreEqual <int>(0, originator.Current.Y); Assert.AreEqual <int>(0, originator.Current.X); // 保存原发器刚初始化后的状态 IMemento <Position> m1 = originator.Memento; // 对原发器进行操作,验证状态的修改 originator.IncreaseY(); originator.DecreaseX(); Assert.AreEqual <int>(1, originator.Current.Y); Assert.AreEqual <int>(-1, originator.Current.X); // 确认备忘录的恢复作用 originator.Memento = m1; Assert.AreEqual <int>(0, originator.Current.Y); Assert.AreEqual <int>(0, originator.Current.X); }