public void CanTrackSetPropertyChanges() { C c = TrackableObjectFactory.CreateFrom(new C()); IObjectChangeTracker Ctracking = c.GetChangeTracker(); IReadOnlyChangeTrackableCollection trackableCollection = (IReadOnlyChangeTrackableCollection)c.Dogs; c.Dogs.Add(new Dog { Name = "Rex" }); Assert.AreEqual(1, Ctracking.ChangedProperties.Count); }
public void CanClearCollectionChanges() { A a = TrackableObjectFactory.CreateOf <A>(); a.Items.Add("a"); a.Items.Add("b"); a.Items.ClearChanges(); IReadOnlyChangeTrackableCollection trackableCollection = (IReadOnlyChangeTrackableCollection)a.Items; Assert.AreEqual(0, trackableCollection.AddedItems.Count); Assert.AreEqual(0, trackableCollection.RemovedItems.Count); }
public void CanTrackSetIntersections() { C c = TrackableObjectFactory.CreateFrom(new C()); c.Dogs.Add(new Dog { Name = "Rex" }); IReadOnlyChangeTrackableCollection trackableCollection = (IReadOnlyChangeTrackableCollection)c.Dogs; c.Dogs.IntersectWith(new[] { new Dog { Name = "Rex" } }); Assert.AreEqual(1, c.Dogs.Count); Assert.AreEqual(2, trackableCollection.RemovedItems.Count); Assert.AreEqual(1, trackableCollection.AddedItems.Count); }