public static void GetEnumerator_NonGeneric_Invalid()
{
IEnumerable enumerable = "foo";
IEnumerator enumerator = enumerable.GetEnumerator();
// Enumerator should throw when accessing Current before starting enumeration
Assert.Throws<InvalidOperationException>(() => enumerator.Current);
while (enumerator.MoveNext()) ;
// Enumerator should throw when accessing Current after finishing enumeration
Assert.False(enumerator.MoveNext());
Assert.Throws<InvalidOperationException>(() => enumerator.Current);
// Enumerator should throw when accessing Current after being reset
enumerator.Reset();
Assert.Throws<InvalidOperationException>(() => enumerator.Current);
}