Example #1
0
        public void TrackInnerList_With_Count_Change()
        {
            var item = new MyTrackedItemWithList {
                MyItems = new List <string> {
                    "A", "B"
                }
            };

            var tracker = new ChangeTracker();

            tracker.TrackChanges(item);
            Assert.IsFalse(tracker.CheckChanges());

            item.MyItems.Add("C");
            Assert.IsTrue(tracker.CheckChanges());
        }
Example #2
0
        public void TrackInnerList_Null()
        {
            var item = new MyTrackedItemWithList();

            var tracker = new ChangeTracker();

            tracker.TrackChanges(item);
            Assert.IsFalse(tracker.CheckChanges());

            // change
            item.MyItems = new List <string> {
                "A", "B"
            };
            Assert.IsTrue(tracker.CheckChanges());

            // back
            item.MyItems = null;
            Assert.IsFalse(tracker.CheckChanges());
        }
Example #3
0
        public void TrackInnerList_That_Value_Changed()
        {
            var item = new MyTrackedItemWithList {
                MyItems = new List <string> {
                    "A", "B"
                }
            };

            var tracker = new ChangeTracker();

            tracker.TrackChanges(item);
            Assert.IsFalse(tracker.CheckChanges());

            // change
            item.MyItems[1] = "B!";
            Assert.IsTrue(tracker.CheckChanges());

            // back
            item.MyItems[1] = "B";
            Assert.IsFalse(tracker.CheckChanges());
        }