public void Where_SourceThrowsOnCurrent() { IEnumerable <int> source = new ThrowsOnCurrentEnumerator(); Func <int, bool> truePredicate = (value) => true; var enumerator = source.Where(truePredicate).GetEnumerator(); // Ensure the first MoveNext call throws an exception Assert.Throws <InvalidOperationException>(() => enumerator.MoveNext()); // Ensure subsequent MoveNext calls succeed Assert.True(enumerator.MoveNext()); Assert.Equal(2, enumerator.Current); }
public void Where_SourceThrowsOnCurrent() { IEnumerable<int> source = new ThrowsOnCurrentEnumerator(); Func<int, bool> truePredicate = (value) => true; var enumerator = source.Where(truePredicate).GetEnumerator(); // Ensure the first MoveNext call throws an exception Assert.Throws<InvalidOperationException>(() => enumerator.MoveNext()); // Ensure subsequent MoveNext calls succeed Assert.True(enumerator.MoveNext()); Assert.Equal(2, enumerator.Current); }