public void Remove_Empty_Processed_NothingChanged()
        {
            var list = new DelayedList <object>();
            var item = new object();

            list.Remove(item);
            list.ProcessPending();

            Assert.IsEmpty(list);
        }
        public void Remove_Unprocessed_NotRemovedYet()
        {
            var list = new DelayedList <object>();
            var item = new object();

            list.Add(item);
            list.ProcessPending();
            list.Remove(item);

            Assert.IsTrue(list.Contains(item));
        }
        public void AddThenRemove_Processed_NotAdded()
        {
            var list = new DelayedList <object>();
            var item = new object();

            list.Add(item);
            list.Remove(item);
            list.ProcessPending();

            Assert.IsFalse(list.Contains(item));
        }
        public void RemoveThenAdd_Processed_Added()
        {
            var list = new DelayedList <object>();
            var item = new object();

            list.Remove(item);
            list.Add(item);
            list.ProcessPending();

            Assert.IsTrue(list.Contains(item));
        }
        public void Remove_NotInList_Processed_NothingChanged()
        {
            var list = new DelayedList <object>();
            var item = new object();

            Fill(list, 5);
            list.ProcessPending();
            list.Remove(item);
            list.ProcessPending();

            Assert.AreEqual(5, list.Count);
        }