Beispiel #1
0
        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 = "*****@*****.**"));
        }
Beispiel #2
0
        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);
        }
Beispiel #3
0
        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);
        }
Beispiel #4
0
        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);
        }
Beispiel #5
0
        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);
        }
Beispiel #6
0
        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);
        }