public void ShouldRaisePropertyChangedEventForIsValidOfRootWhenAddingInvalidItem() { var wrapper = new TestFriendWrapper(_testFriend); var emailToAdd = new TestFriendEmailWrapper(new TestFriendEmail()); Assert.IsTrue(wrapper.PropertyChangedEventRised(nameof(wrapper.IsValid), () => wrapper.Emails.Add(emailToAdd))); Assert.IsTrue(wrapper.PropertyChangedEventRised(nameof(wrapper.IsValid), () => emailToAdd.Email = "*****@*****.**")); }
public void ShouldSetIsValidOfRootWhenAddingInvalidItem() { var emailToAdd = new TestFriendEmailWrapper(new TestFriendEmail()); var wrapper = new TestFriendWrapper(_testFriend); Assert.IsTrue(wrapper.IsValid);; wrapper.Emails.Add(emailToAdd); Assert.IsFalse(wrapper.IsValid); emailToAdd.Email = "*****@*****.**"; Assert.IsTrue(wrapper.IsValid); }
public void ShouldNotTrackAddedItemAsModified() { var emailToAdd = new TestFriendEmailWrapper(new TestFriendEmail()); var c = new ValidatableChangeTrackingCollection <TestFriendEmailWrapper>(_emails); c.Add(emailToAdd); emailToAdd.Email = "*****@*****.**"; Assert.IsTrue(emailToAdd.IsChanged); Assert.AreEqual(3, c.Count); Assert.AreEqual(1, c.AddedItems.Count); Assert.AreEqual(0, c.RemovedItems.Count); Assert.AreEqual(0, c.ModifiedItems.Count); Assert.IsTrue(c.IsChanged); }
public void ShouldRaisePropertyChangedEventForIsValidOfRootWhenAddingInvalidItem() { var fired = false; var wrapper = new TestFriendWrapper(_testFriend); wrapper.PropertyChanged += (s, e) => { if (e.PropertyName == "IsValid") { fired = true; } }; var emailToAdd = new TestFriendEmailWrapper(new TestFriendEmail()); wrapper.Emails.Add(emailToAdd); Assert.IsTrue(fired); fired = false; emailToAdd.Email = "*****@*****.**"; Assert.IsTrue(fired); }
public void ShouldRejectChanges() { var emailToModify = _emails.First(); var emailToRemove = _emails.Skip(1).First(); var emailToAdd = new TestFriendEmailWrapper(new TestFriendEmail { Email = "*****@*****.**" }); var c = new ValidatableChangeTrackingCollection <TestFriendEmailWrapper>(_emails); c.Add(emailToAdd); c.Remove(emailToRemove); emailToModify.Email = "*****@*****.**"; Assert.AreEqual("*****@*****.**", emailToModify.EmailOriginalValue); Assert.AreEqual(2, c.Count); Assert.AreEqual(1, c.AddedItems.Count); Assert.AreEqual(1, c.ModifiedItems.Count); Assert.AreEqual(1, c.RemovedItems.Count); c.RejectChanges(); Assert.AreEqual(2, c.Count); Assert.IsTrue(c.Contains(emailToModify)); Assert.IsTrue(c.Contains(emailToRemove)); Assert.AreEqual(0, c.AddedItems.Count); Assert.AreEqual(0, c.ModifiedItems.Count); Assert.AreEqual(0, c.RemovedItems.Count); Assert.IsFalse(emailToModify.IsChanged); Assert.AreEqual("*****@*****.**", emailToModify.Email); Assert.AreEqual("*****@*****.**", emailToModify.EmailOriginalValue); Assert.IsFalse(c.IsChanged); }
public void ShouldTrackAddedItems() { var emailToAdd = new TestFriendEmailWrapper(new TestFriendEmail()); var c = new ValidatableChangeTrackingCollection <TestFriendEmailWrapper>(_emails); Assert.AreEqual(2, c.Count); Assert.IsFalse(c.IsChanged); c.Add(emailToAdd); Assert.AreEqual(3, c.Count); Assert.AreEqual(1, c.AddedItems.Count); Assert.AreEqual(0, c.RemovedItems.Count); Assert.AreEqual(0, c.ModifiedItems.Count); Assert.AreEqual(emailToAdd, c.AddedItems.First()); Assert.IsTrue(c.IsChanged); c.Remove(emailToAdd); Assert.AreEqual(2, c.Count); Assert.AreEqual(0, c.AddedItems.Count); Assert.AreEqual(0, c.RemovedItems.Count); Assert.AreEqual(0, c.ModifiedItems.Count); Assert.IsFalse(c.IsChanged); }