public void MultilevelUndo() { var e = new UndoEntity(); e.Property = "Joel"; var state = e.Savepoint(); e.Property = "Joel2"; var state2 = e.Savepoint(); e.Property = "Joel3"; state2.Rollback(); e.Property.ShouldEqual("Joel2"); state.Rollback(); e.Property.ShouldEqual("Joel"); }
public void PrivateAutoProperty() { var e = new UndoEntity(); e.SetPrivateAutoProperty("prop"); var state = e.Savepoint(); e.SetPrivateAutoProperty("changed"); state.Rollback(); e.GetPrivateAutoProperty().ShouldEqual("prop"); }
public void AutoProperty() { var e = new UndoEntity { AutoProperty = "prop" }; var state = e.Savepoint(); e.AutoProperty = "changed"; state.Rollback(); e.AutoProperty.ShouldEqual("prop"); }
public void MixedAutoProperty() { var e = new UndoEntity(); e.SetMixedAutoProperty("prop"); var state = e.Savepoint(); e.SetMixedAutoProperty("changed"); e.MixedAutoProperty.ShouldEqual("changed"); state.Rollback(); e.MixedAutoProperty.ShouldEqual("prop"); }
public void MultilevelInstance() { var e = new UndoEntity(); var level1 = new UndoEntityLevel1(); e.Entity = level1; var state = e.Savepoint(); e.Entity = new UndoEntityLevel1(); state.Rollback(); e.Entity.ShouldEqual(level1); }
public void Multilevel() { var e = new UndoEntity(); e.Entity = new UndoEntityLevel1() { Property = 5 }; var state = e.Savepoint(); e.Entity.Property = 4; state.Rollback(); e.Entity.Property.ShouldEqual(5); }
public void Undo() { TestTime.Measure(() => { var e = new UndoEntity(); var level1 = new UndoEntityLevel1(); e.Entity = level1; var state = e.Savepoint(); e.Entity = new UndoEntityLevel1(); state.Rollback(); e.Entity.ShouldEqual(level1); }); }
public void MultilevelWithIdentity() { var e = new UndoEntity(); var level1 = new UndoEntityLevel1(); e.Entity = e.Entity2 = level1; var state = e.Savepoint(); e.Entity.Property = 4; e.Entity2 = new UndoEntityLevel1(); state.Rollback(); e.Entity.Property.ShouldEqual(default(int)); e.Entity.ShouldEqual(e.Entity2); Assert.IsTrue(object.ReferenceEquals(e.Entity, e.Entity2)); }