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()); }
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()); }
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()); }