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); }
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(); } }