예제 #1
0
        public void Should_Reject_Changes_With_Modified_And_Removed_Items()
        {
            var listItem = _listItems.First();

            var c = new ChangeTrackingCollection <PocoListItemAdapter>(_listItems);

            listItem.Description = "modified item";
            c.Remove(listItem);
            Assert.AreEqual("Description01", listItem.DescriptionOriginal);
            Assert.AreEqual(1, c.Count);
            Assert.AreEqual(0, c.AddedItems.Count);
            Assert.AreEqual(0, c.ModifiedItems.Count);
            Assert.AreEqual(1, c.RemovedItems.Count);

            c.RejectChanges();

            Assert.AreEqual(2, c.Count);
            Assert.IsTrue(c.Contains(listItem));

            Assert.AreEqual(0, c.AddedItems.Count);
            Assert.AreEqual(0, c.ModifiedItems.Count);
            Assert.AreEqual(0, c.RemovedItems.Count);

            Assert.IsFalse(listItem.IsChanged);
            Assert.AreEqual("Description01", listItem.Description);
            Assert.AreEqual("Description01", listItem.DescriptionOriginal);

            Assert.IsFalse(c.IsChanged);
        }
예제 #2
0
        public void ShouldRejectChangesWithModifiedAndRemovedItem()
        {
            var email = _emails.First();

            var c = new ChangeTrackingCollection <FriendEmailWrapper>(_emails);

            email.Email = "*****@*****.**";
            c.Remove(email);
            Assert.AreEqual("*****@*****.**", email.EmailOriginalValue);

            Assert.AreEqual(1, c.Count);
            Assert.AreEqual(0, c.AddedItems.Count);
            Assert.AreEqual(0, c.ModifiedItems.Count);
            Assert.AreEqual(1, c.RemovedItems.Count);

            c.RejectChanges();

            Assert.AreEqual(2, c.Count);
            Assert.IsTrue(c.Contains(email));

            Assert.AreEqual(0, c.AddedItems.Count);
            Assert.AreEqual(0, c.ModifiedItems.Count);
            Assert.AreEqual(0, c.RemovedItems.Count);

            Assert.IsFalse(email.IsChanged);
            Assert.AreEqual("*****@*****.**", email.Email);
            Assert.AreEqual("*****@*****.**", email.EmailOriginalValue);

            Assert.IsFalse(c.IsChanged);
        }
        public void ShouldRejectChangesWithModifiedAndRemovedItem()
        {
            Initialize();

            var listItem = _listItems.First();

            var c = new ChangeTrackingCollection <PocoListItemAdapter> (_listItems);

            listItem.Description = "modified item";
            c.Remove(listItem);
            Assert.Equal("Description01", listItem.DescriptionOriginal);

            Assert.Equal(1, c.Count);
            Assert.Equal(0, c.AddedItems.Count);
            Assert.Equal(0, c.ModifiedItems.Count);
            Assert.Equal(1, c.RemovedItems.Count);

            c.RejectChanges();

            Assert.Equal(2, c.Count);
            Assert.True(c.Contains(listItem));

            Assert.Equal(0, c.AddedItems.Count);
            Assert.Equal(0, c.ModifiedItems.Count);
            Assert.Equal(0, c.RemovedItems.Count);

            Assert.False(listItem.IsChanged);
            Assert.Equal("Description01", listItem.Description);
            Assert.Equal("Description01", listItem.DescriptionOriginal);

            Assert.False(c.IsChanged);
        }
        public void ShouldAcceptChanges()
        {
            var emailToModify = _emails.First();
            var emailToRemove = _emails.Skip(1).First();
            var emailToAdd    = new FriendEmailWrapper(new FriendEmail {
                Email = "*****@*****.**"
            });
            var c = new ChangeTrackingCollection <FriendEmailWrapper>(_emails)
            {
                emailToAdd
            };

            c.Remove(emailToRemove);
            emailToModify.Email = "*****@*****.**";

            Assert.Equal("*****@*****.**", emailToModify.EmailOriginalValue);

            Assert.Equal(2, c.Count);
            Assert.Equal(1, c.AddedItems.Count);
            Assert.Equal(1, c.ModifiedItems.Count);
            Assert.Equal(1, c.RemovedItems.Count);

            c.AcceptChanges();

            Assert.Equal(2, c.Count);
            Assert.True(c.Contains(emailToModify));
            Assert.True(c.Contains(emailToAdd));

            Assert.Equal(0, c.AddedItems.Count);
            Assert.Equal(0, c.ModifiedItems.Count);
            Assert.Equal(0, c.RemovedItems.Count);

            Assert.False(emailToModify.IsChanged);
            Assert.Equal("*****@*****.**", emailToModify.Email);
            Assert.Equal("*****@*****.**", emailToModify.EmailOriginalValue);

            Assert.False(c.IsChanged);
        }
        public void ShouldRejectChanges()
        {
            Initialize();
            var listItemToAdd = new PocoListItemAdapter(new PocoListItem {
                Id = 3, Title = "TestItem03", Description = "Description03"
            });
            var listItemToModify = _listItems.First();
            var listItemToRemove = _listItems.Skip(1).First();


            var c = new ChangeTrackingCollection <PocoListItemAdapter>(_listItems);

            c.Add(listItemToAdd);
            c.Remove(listItemToRemove);
            listItemToModify.Description = "modified item";
            Assert.Equal("Description01", listItemToModify.DescriptionOriginal);

            Assert.Equal(2, c.Count);
            Assert.Equal(1, c.AddedItems.Count);
            Assert.Equal(1, c.ModifiedItems.Count);
            Assert.Equal(1, c.RemovedItems.Count);

            c.RejectChanges();

            Assert.Equal(2, c.Count);
            Assert.True(c.Contains(listItemToModify));
            Assert.True(c.Contains(listItemToRemove));

            Assert.Equal(0, c.AddedItems.Count);
            Assert.Equal(0, c.ModifiedItems.Count);
            Assert.Equal(0, c.RemovedItems.Count);

            Assert.False(listItemToModify.IsChanged);
            Assert.Equal("Description01", listItemToModify.Description);
            Assert.Equal("Description01", listItemToModify.DescriptionOriginal);

            Assert.False(c.IsChanged);
        }
        public void ShouldRejectChanges()
        {
            var emailToModify = _emails.First();
            var emailToRemove = _emails.Skip(1).First();
            var emailToAdd    = new EmailWrapper(new Email {
                EmailAddress = "*****@*****.**"
            });

            var c = new ChangeTrackingCollection <EmailWrapper>(_emails);

            c.Add(emailToAdd);
            c.Remove(emailToRemove);
            emailToModify.EmailAddress = "*****@*****.**";
            Assert.AreEqual("*****@*****.**", emailToModify.EmailAddressOriginalValue);

            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.EmailAddress);
            Assert.AreEqual("*****@*****.**", emailToModify.EmailAddressOriginalValue);

            Assert.IsFalse(c.IsChanged);
        }
        public void ShouldRejectChanges()
        {
            var emailToModify = _emails.First();
            var emailToRemove = _emails.Skip(1).First();
            var emailToAdd    = new EmailWrapper(new Email {
                EmailAddress = "*****@*****.**"
            });

            var trackingCollection = new ChangeTrackingCollection <EmailWrapper>(_emails);

            trackingCollection.Add(emailToAdd);
            trackingCollection.Remove(emailToRemove);
            emailToModify.EmailAddress = "*****@*****.**";
            Assert.AreEqual(email1, emailToModify.EmailAddressOriginalValue);

            Assert.AreEqual(2, trackingCollection.Count);
            Assert.AreEqual(1, trackingCollection.AddedItems.Count);
            Assert.AreEqual(1, trackingCollection.ModifiedItems.Count);
            Assert.AreEqual(1, trackingCollection.RemovedItems.Count);

            trackingCollection.RejectChanges();

            Assert.AreEqual(2, trackingCollection.Count);
            Assert.IsTrue(trackingCollection.Contains(emailToModify));
            Assert.IsTrue(trackingCollection.Contains(emailToRemove));

            Assert.AreEqual(0, trackingCollection.AddedItems.Count);
            Assert.AreEqual(0, trackingCollection.ModifiedItems.Count);
            Assert.AreEqual(0, trackingCollection.RemovedItems.Count);

            Assert.IsFalse(emailToModify.IsChanged);
            Assert.AreEqual(email1, emailToModify.EmailAddress);
            Assert.AreEqual(email1, emailToModify.EmailAddressOriginalValue);

            Assert.IsFalse(trackingCollection.IsChanged);
        }