public void Add()
        {
            var list = new NaiveLockingList <string>();

            list.Add("sumthin");

            CollectionAssert.AreEqual(new[] { "sumthin" }, list);
        }
        public void Add()
        {
            var list = new NaiveLockingList<string>();

            list.Add("sumthin");

            CollectionAssert.AreEqual(new[] {"sumthin"}, list);
        }
        public static void RegisterInjectionFilters()
        {
            _filters = new NaiveLockingList <IModuleInjectionFilter>();

            foreach (IModuleInjectionFilter filter in GetFilters())
            {
                _filters.Add(filter);
            }
        }
        public static void RegisterInjectionFilters()
        {
            _filters = new NaiveLockingList<IModuleInjectionFilter>();

            foreach (IModuleInjectionFilter filter in GetFilters())
            {
                _filters.Add(filter);
            }
        }
        public static void RegisterDataSources()
        {
            _dataSources = new NaiveLockingList <IDataSource>();

            foreach (IDataSource ds in GetDataSources())
            {
                _dataSources.Add(ds);
            }
        }
        public static void RegisterFileIndexers()
        {
            _fileIndexers = new NaiveLockingList <IFileIndexer>();

            foreach (IFileIndexer fi in GetFileIndexers())
            {
                _fileIndexers.Add(fi);
            }
        }
        public void NoWritesWhileEnumerating()
        {
            var list = new NaiveLockingList <int> {
                0, 1, 2, 3
            };

            using (list.GetEnumerator())
            {
                list.Add(4);
            }
        }
        public void NoWritesWhileEnumerating()
        {
            var list = new NaiveLockingList <int> {
                0, 1, 2, 3
            };

            using (list.GetEnumerator())
            {
                Assert.Throws <LockRecursionException>(() => list.Add(4));
            }
        }
        public void CanWriteAfterEnumerating()
        {
            var list = new NaiveLockingList <int> {
                0, 1, 2, 3
            };

            using (IEnumerator <int> e = list.GetEnumerator())
            {
                e.MoveNext();
                Debug.WriteLine(e.Current);
                e.MoveNext();
            }

            list.Add(4);
        }
        public void CanWriteAfterEnumerating()
        {
            var list = new NaiveLockingList<int> {0, 1, 2, 3};

            using (IEnumerator<int> e = list.GetEnumerator())
            {
                e.MoveNext();
                Debug.WriteLine(e.Current);
                e.MoveNext();
            }

            list.Add(4);
        }
        public void NoWritesWhileEnumerating()
        {
            var list = new NaiveLockingList<int> {0, 1, 2, 3};

            using (list.GetEnumerator())
            {
                list.Add(4);
            }
        }