public void ComplexWrapperAcceptAndReject() { TestWrappersFactory testWrappersFactory = new TestWrappersFactory(); TestHusband husband = new TestHusband(); TestWife wife1 = new TestWife(); TestChild child1 = new TestChild { Husband = husband, Wife = wife1 }; TestChild child2 = new TestChild { Husband = husband, Wife = wife1 }; wife1.Husband = husband; husband.Wife = wife1; husband.Children.Add(child1); husband.Children.Add(child2); TestHusbandWrapper husbandWrapper = testWrappersFactory.GetWrapper <TestHusbandWrapper>(husband); Assert.IsFalse(husbandWrapper.IsChanged); TestChildWrapper childWrapper1 = husbandWrapper.Children.First(x => Equals(x.Model, child1)); string oldChildsName = childWrapper1.Name; childWrapper1.Name = oldChildsName + "NEW"; husbandWrapper.RejectChanges(); Assert.AreEqual(childWrapper1.Name, oldChildsName); childWrapper1.Name = oldChildsName + "NEW"; husbandWrapper.AcceptChanges(); Assert.AreEqual(childWrapper1.Name, oldChildsName + "NEW"); Assert.AreEqual(childWrapper1.NameOriginalValue, oldChildsName + "NEW"); TestWifeWrapper wifeWrapper = husbandWrapper.Wife; husbandWrapper.Wife = null; Assert.AreEqual(husbandWrapper.Wife, null); husbandWrapper.RejectChanges(); Assert.AreEqual(husbandWrapper.Wife, wifeWrapper); TestWifeWrapper wifeWrapper2 = testWrappersFactory.GetWrapper <TestWifeWrapper>(new TestWife()); husbandWrapper.Wife = wifeWrapper2; husbandWrapper.AcceptChanges(); Assert.AreEqual(wifeWrapper2.Model, husbandWrapper.Model.Wife); husbandWrapper.Children.Remove(childWrapper1); husbandWrapper.RejectChanges(); Assert.IsTrue(husbandWrapper.Children.Contains(childWrapper1)); Assert.IsFalse(husbandWrapper.IsChanged); }
public void AcceptAndRejectChangesInObjectsWithNavigationProperty() { TestHusband husband = new TestHusband(); TestWife wife1 = new TestWife(); wife1.Husband = husband; husband.Wife = wife1; TestHusbandWrapper husbandWrapper = new TestHusbandWrapper(husband); Assert.IsFalse(husbandWrapper.IsChanged); husbandWrapper.Wife.N++; Assert.IsTrue(husbandWrapper.IsChanged); husbandWrapper.AcceptChanges(); Assert.IsFalse(husbandWrapper.IsChanged); var oldId = husbandWrapper.Wife.Id; husbandWrapper.Wife.Id = Guid.NewGuid(); Assert.IsTrue(husbandWrapper.IsChanged); husbandWrapper.RejectChanges(); Assert.IsFalse(husbandWrapper.IsChanged); Assert.AreEqual(oldId, husbandWrapper.Wife.Id); TestChildWrapper childWrapper = new TestChildWrapper(new TestChild { Husband = husband }); husbandWrapper.Children.Add(childWrapper); Assert.IsTrue(husbandWrapper.IsChanged); }