public void ShouldBeValidAgainWhenEmailIsAdded() { TestWrappersFactory testWrappersFactory = new TestWrappersFactory(); var wrapper = testWrappersFactory.GetWrapper <TestFriendWrapper>(_testFriend); wrapper.Emails.Clear(); Assert.IsFalse(wrapper.IsDeveloper); Assert.IsTrue(wrapper.IsValid); wrapper.IsDeveloper = true; Assert.IsFalse(wrapper.IsValid); wrapper.Emails.Add(testWrappersFactory.GetWrapper <TestFriendEmailWrapper>(new TestFriendEmail { Email = "*****@*****.**" })); Assert.IsTrue(wrapper.IsValid); var emailsErrors = wrapper.GetErrors(nameof(wrapper.Emails)).Cast <string>().ToList(); Assert.AreEqual(0, emailsErrors.Count); var isDeveloperErrors = wrapper.GetErrors(nameof(wrapper.IsDeveloper)).Cast <string>().ToList(); Assert.AreEqual(0, isDeveloperErrors.Count); }
public void AcceptAndRejectChangesInObjectsWithNavigationProperty() { TestWrappersFactory testWrappersFactory = new TestWrappersFactory(); TestHusband husband = new TestHusband(); TestWife wife1 = new TestWife(); wife1.Husband = husband; husband.Wife = wife1; TestHusbandWrapper husbandWrapper = testWrappersFactory.GetWrapper <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 = testWrappersFactory.GetWrapper <TestChildWrapper>(new TestChild { Husband = husband }); husbandWrapper.Children.Add(childWrapper); Assert.IsTrue(husbandWrapper.IsChanged); }
public void NavigationCollectionPropertiesTest() { TestWrappersFactory testWrappersFactory = new TestWrappersFactory(); TestFriendGroup group = new TestFriendGroup { Name = "group1", FriendTests = new List <TestFriend>() }; TestFriend testFriend = new TestFriend { FirstName = "Thomas", TestFriendAddress = new TestFriendAddress { City = "CityOld" }, TestFriendGroup = group, Emails = new List <TestFriendEmail>() }; group.FriendTests.Add(testFriend); TestFriendWrapper wrapper = testWrappersFactory.GetWrapper <TestFriendWrapper>(testFriend); Assert.IsFalse(wrapper.IsChanged); var old = wrapper.TestFriendAddress; wrapper.TestFriendAddress = testWrappersFactory.GetWrapper <TestFriendAddressWrapper>(new TestFriendAddress { City = "CityNew" }); Assert.IsTrue(wrapper.IsChanged); //wrapper.Test_FriendAddress = old; //Assert.IsFalse(wrapper.IsChanged); }
public void ShouldBeInSyncAfterAddingEmail() { var wrappersFactory = new TestWrappersFactory(); _testFriend.Emails.Remove(_testFriendEmail); var wrapper = wrappersFactory.GetWrapper <TestFriendWrapper>(_testFriend); wrapper.Emails.Add(wrappersFactory.GetWrapper <TestFriendEmailWrapper>(_testFriendEmail)); CheckIfModelEmailsCollectionIsInSync(wrapper); }
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 ShouldSetIsValidOfRootWhenAddingInvalidItem() { TestWrappersFactory testWrappersFactory = new TestWrappersFactory(); var emailToAdd = testWrappersFactory.GetWrapper <TestFriendEmailWrapper>(new TestFriendEmail()); var wrapper = testWrappersFactory.GetWrapper <TestFriendWrapper>(_testFriend); Assert.IsTrue(wrapper.IsValid);; wrapper.Emails.Add(emailToAdd); Assert.IsFalse(wrapper.IsValid); emailToAdd.Email = "*****@*****.**"; Assert.IsTrue(wrapper.IsValid); }
public void IsChangedNavigationProperty() { TestWrappersFactory testWrappersFactory = new TestWrappersFactory(); TestHusband husband = new TestHusband(); TestWife wife1 = new TestWife(); wife1.Husband = husband; husband.Wife = wife1; TestHusbandWrapper husbandWrapper = testWrappersFactory.GetWrapper <TestHusbandWrapper>(husband); Assert.IsFalse(husbandWrapper.IsChanged); var wife1Wrapper = husbandWrapper.Wife; husbandWrapper.Wife = testWrappersFactory.GetWrapper <TestWifeWrapper>(new TestWife()); Assert.IsTrue(husbandWrapper.IsChanged); husbandWrapper.Wife = wife1Wrapper; Assert.IsFalse(husbandWrapper.IsChanged); }
public void ShouldRaisePropertyChangedEventForIsValidOfRootWhenAddingInvalidItem() { TestWrappersFactory testWrappersFactory = new TestWrappersFactory(); var fired = false; var wrapper = testWrappersFactory.GetWrapper <TestFriendWrapper>(_testFriend); wrapper.PropertyChanged += (s, e) => { if (e.PropertyName == "IsValid") { fired = true; } }; var emailToAdd = testWrappersFactory.GetWrapper <TestFriendEmailWrapper>(new TestFriendEmail()); wrapper.Emails.Add(emailToAdd); Assert.IsTrue(fired); fired = false; emailToAdd.Email = "*****@*****.**"; Assert.IsTrue(fired); }
public void Initialize() { _emails = new List <TestFriendEmailWrapper> { _testWrappersFactory.GetWrapper <TestFriendEmailWrapper>(new TestFriendEmail { Email = "*****@*****.**" }), _testWrappersFactory.GetWrapper <TestFriendEmailWrapper>(new TestFriendEmail { Email = "*****@*****.**" }), }; }
public void NavigationPropertiesTest() { TestWrappersFactory testWrappersFactory = new TestWrappersFactory(); TestHusband husband = new TestHusband(); TestWife wife = new TestWife(); wife.Husband = husband; husband.Wife = wife; TestHusbandWrapper husbandWrapper = testWrappersFactory.GetWrapper <TestHusbandWrapper>(husband); bool fired = false; husbandWrapper.PropertyChanged += (sender, args) => { fired = true; }; Assert.IsFalse(husbandWrapper.IsChanged); var wifeWrapper = husbandWrapper.Wife; wifeWrapper.N = 10; Assert.IsTrue(husbandWrapper.IsChanged); Assert.IsTrue(fired); TestWife otherTestWife = new TestWife(); TestWifeWrapper otherTestWifeWrapper = testWrappersFactory.GetWrapper <TestWifeWrapper>(otherTestWife); Assert.IsFalse(husbandWrapper.WifeIsChanged); husbandWrapper.Wife = otherTestWifeWrapper; Assert.IsTrue(husbandWrapper.WifeIsChanged); Assert.IsTrue(husbandWrapper.IsChanged); Assert.AreEqual(wifeWrapper, husbandWrapper.WifeOriginalValue); fired = false; wifeWrapper.N = 33; Assert.IsFalse(fired); fired = false; husbandWrapper.Wife = null; Assert.AreEqual(husbandWrapper.Wife, null); Assert.IsTrue(fired); Assert.IsTrue(husbandWrapper.WifeIsChanged); Assert.IsTrue(husbandWrapper.IsChanged); Assert.AreEqual(wifeWrapper, husbandWrapper.WifeOriginalValue); fired = false; TestChildWrapper childWrapper = testWrappersFactory.GetWrapper <TestChildWrapper>(new TestChild { Husband = husband }); husbandWrapper.Children.Add(childWrapper); Assert.IsTrue(fired); //var husbandWrp = TestWrappersFactory.GetWrapper <TestHusband, TestHusbandWrapper>(husbandWrapper.Model); fired = false; childWrapper.Name += "new"; Assert.IsTrue(fired); husbandWrapper.Children.Remove(childWrapper); fired = false; childWrapper.Name += "new2"; Assert.IsFalse(fired); }