public void CeaseListentingWhenMemberRemoved() { TestCollection.Remove(Fred); Expect(TestCollection.Count, Is.EqualTo(2)); Expect(TestCollection.IndexOf(Fred), Is.Negative); Expect(ItemEventList.Count, Is.EqualTo(0), "Item Event count (pre change)"); Expect(CollectionEventList.Count, Is.EqualTo(1), "Collection Event count (pre change)"); Expect(CollectionEventList[0].Action, Is.EqualTo(NotifyCollectionChangedAction.Remove), "Action (remove)"); Expect(CollectionEventList[0].OldItems.Count, Is.EqualTo(1), "OldItems count"); Expect(CollectionEventList[0].NewItems, Is.Null, "NewItems count"); Expect(CollectionEventList[0].OldItems[0], Is.EqualTo(Fred), "OldItems[0] dereference"); CollectionEventList.Clear(); // Empty for next operation ItemEventList.Clear(); Fred.Id = 7; Expect(CollectionEventList.Count, Is.EqualTo(0), "Collection Event count (post change)"); Expect(ItemEventList.Count, Is.EqualTo(0), "Item Event count (post change)"); }