public void TestVersionning() { var t = ObjectVersionner.GetVersionedObject <IToto>(new Toto() { Id = 666, Value = "original" }); t.CurrentState.Id = 1; t.CurrentState.Value = "sample"; int a = t.CurrentState.Id; string b = t.CurrentState.Value; Assert.AreEqual("sample", b); Assert.AreEqual(a, 1); Assert.IsTrue(t.HasPendingChanges); t.CommitToNewVersion(); Assert.IsFalse(t.HasPendingChanges); Assert.IsTrue(t.LastVersionId == 1); //move backward to version 0 t.CurrentVersionId = 0; int c = t.CurrentState.Id; string d = t.CurrentState.Value; Assert.AreEqual("original", d); Assert.AreEqual(c, 666); //move forward to latest version t.MoveToLatestVersion(); int e = t.CurrentState.Id; string f = t.CurrentState.Value; Assert.AreEqual("sample", f); Assert.AreEqual(e, 1); }
public void TestRollBack() { var t = ObjectVersionner.GetVersionedObject <IToto>(new Toto() { Id = 666, Value = "original" }); t.CurrentState.Id = 1; t.CurrentState.Value = "sample"; int a = t.CurrentState.Id; string b = t.CurrentState.Value; Assert.AreEqual("sample", b); Assert.AreEqual(a, 1); Assert.IsTrue(t.HasPendingChanges); t.RollBackChanges(); Assert.IsFalse(t.HasPendingChanges); Assert.AreEqual("original", t.CurrentState.Value); Assert.AreEqual(666, t.CurrentState.Id); }