Esempio n. 1
0
        void CollectionIsDisposed(int sequenceLength, bool iterateOver)
        {
            var originalSequence       = new EnumerableWithDisposableEnumerator(Enumerable.Repeat(int.MaxValue, sequenceLength));
            IEnumerable <int> sequence = originalSequence;

            EnumerableExtensions.IsEmpty(ref sequence);
            if (iterateOver)
            {
                sequence.ToList();
            }

            Assert.IsTrue(originalSequence.IsDisposed == iterateOver);
        }
Esempio n. 2
0
        public void TestExceptionalEnumerableIsDisposed(int indexThatThrows)
        {
            var originalSequence = new EnumerableWithDisposableEnumerator(EnumerableThatThrows());

            try
            {
                IEnumerable <int> sequence = originalSequence;
                EnumerableExtensions.IsEmpty(ref sequence);
                sequence.ToList();
            }
            catch { }
            Assert.IsTrue(originalSequence.IsDisposed);

            IEnumerable <int> EnumerableThatThrows()
            {
                for (int i = 0; i < indexThatThrows; i++)
                {
                    yield return(0);
                }
                throw new Exception();
            }
        }