public void ReplaceExistingSublist_OldSublistEmpty_FiresAddCollectionChanged() { Person replacement = new Person("Ninja", 23); ClinqTestFactory.InitializeParents(replacement); _source[1].Parents = new ObservableCollection <Person>(); int callCount = 0; _target.CollectionChanged += (sender, args) => { callCount++; Assert.AreEqual(NotifyCollectionChangedAction.Add, args.Action); Assert.AreEqual(2, args.NewStartingIndex); CollectionAssert.AreEquivalent(replacement.Parents, args.NewItems); Assert.AreEqual(4, _target.Count); Assert.AreEqual("BobParent0", _target[0].Name); Assert.AreEqual("BobParent1", _target[1].Name); Assert.AreEqual("NinjaParent0", _target[2].Name); Assert.AreEqual("NinjaParent1", _target[3].Name); }; _source[1] = replacement; Assert.AreEqual(1, callCount); }
public void AddNewSublistToSource_Always_FireCollectionChangedEvent() { Person newPerson = new Person("Ninja", 23); ClinqTestFactory.InitializeParents(newPerson); int callCount = 0; _target.CollectionChanged += (sender, args) => { callCount++; Assert.AreEqual(NotifyCollectionChangedAction.Add, args.Action); Assert.AreEqual(2, args.NewStartingIndex); CollectionAssert.AreEquivalent(newPerson.Parents, args.NewItems); }; _source.Insert(1, newPerson); Assert.AreEqual(1, callCount); Assert.AreEqual(6, _target.Count); Assert.AreEqual("BobParent0", _target[0].Name); Assert.AreEqual("BobParent1", _target[1].Name); Assert.AreEqual("NinjaParent0", _target[2].Name); Assert.AreEqual("NinjaParent1", _target[3].Name); Assert.AreEqual("JimParent0", _target[4].Name); Assert.AreEqual("JimParent1", _target[5].Name); }
public void ReplaceItemInSource_Always_FireCollectionChangedEvent() { Person replacement = new Person("Ninja", 23); ClinqTestFactory.InitializeParents(replacement); int callCount = 0; _target.CollectionChanged += (sender, args) => { callCount++; TestUtilities.AssertReplace(args, 2, replacement.Parents.ToArray(), _parents[1].ToArray()); }; _source[1] = replacement; Assert.AreEqual(1, callCount); }
public void ReplaceItemInSource_Always_FireCollectionChangedEvent() { Person replacement = new Person("Ninja", 23); ClinqTestFactory.InitializeParents(replacement); int callCount = 0; _target.CollectionChanged += (sender, args) => { Assert.AreEqual(NotifyCollectionChangedAction.Replace, args.Action); Assert.AreEqual(2 + callCount, args.NewStartingIndex); Assert.AreEqual(replacement.Parents[callCount], args.NewItems[0]); Assert.AreEqual(_parents[1][callCount], args.OldItems[0]); callCount++; }; _source[1] = replacement; Assert.AreEqual(2, callCount); }