Esempio n. 1
0
        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());
        }
Esempio n. 2
0
        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());
        }