public void TestEventsOnSet() { // Build set { 5, 6, 7, 8 }, then remove stuff var list = new CollectionWithChangeEvents <int>(new HashSet <int>()); CheckListChanging(list, l => l.Add(5), int.MinValue, A(5), A()); CheckListChanged(list, l => l.Add(6), int.MinValue, A(6), A(), 5, 6); CheckNoEventOccurs(list, l => IsFalse(l.TryAdd(5))); CheckNoEventOccurs(list, l => l.Add(6)); CheckListChanging(list, l => IsTrue(l.TryAdd(7)), int.MinValue, A(7), A(), 5, 6); CheckListChanged(list, l => IsTrue(l.TryAdd(8)), int.MinValue, A(8), A(), 5, 6, 7, 8); CheckNoEventOccurs(list, l => IsFalse(l.Remove(88))); CheckListChanging(list, l => IsTrue(l.Remove(6)), int.MinValue, A(), A(6), 5, 6, 7, 8); CheckListChanged(list, l => IsTrue(l.Remove(8)), int.MinValue, A(), A(8), 5, 7); CheckListChanged(list, l => l.Clear(), 0, A(), A(5, 7)); CheckNoEventOccurs(list, l => l.Clear()); }
public void TestEventsOnList() { // Build list { 5, 6, 5, 6 }, then remove stuff var list = new CollectionWithChangeEvents <int>(new List <int>()); CheckListChanging(list, l => l.Add(5), int.MinValue, A(5), A()); CheckListChanged(list, l => l.Add(6), int.MinValue, A(6), A(), 5, 6); CheckListChanging(list, l => IsTrue(l.TryAdd(5)), int.MinValue, A(5), A(), 5, 6); CheckListChanged(list, l => IsTrue(l.TryAdd(6)), int.MinValue, A(6), A(), 5, 6, 5, 6); CheckListChanging(list, l => IsTrue(l.Remove(5)), int.MinValue, A(), A(5), 5, 6, 5, 6); CheckListChanged(list, l => IsTrue(l.Remove(5)), int.MinValue, A(), A(5), 6, 6); CheckNoEventOccurs(list, l => IsFalse(l.Remove(5))); IsFalse(list.IsEmpty); CheckListChanging(list, l => l.Clear(), 0, A(), A(6, 6), 6, 6); IsTrue(list.IsEmpty); CheckNoEventOccurs(list, l => l.Clear()); }