public void TripleEntryEnumerable() { var list = new List <string> { "x", "y", "z" }; var subject = new MetaEnumerable <string>(list); using (IEnumerator <MetaEnumerable <string> .Entry> iterator = subject.GetEnumerator()) { Assert.IsTrue(iterator.MoveNext()); Assert.IsTrue(iterator.Current.IsFirst); Assert.IsFalse(iterator.Current.IsLast); Assert.AreEqual("x", iterator.Current.Value); Assert.AreEqual(0, iterator.Current.Index); Assert.IsTrue(iterator.MoveNext()); Assert.IsFalse(iterator.Current.IsFirst); Assert.IsFalse(iterator.Current.IsLast); Assert.AreEqual("y", iterator.Current.Value); Assert.AreEqual(1, iterator.Current.Index); Assert.IsTrue(iterator.MoveNext()); Assert.IsFalse(iterator.Current.IsFirst); Assert.IsTrue(iterator.Current.IsLast); Assert.AreEqual("z", iterator.Current.Value); Assert.AreEqual(2, iterator.Current.Index); Assert.IsFalse(iterator.MoveNext()); } }
public void EmptyEnumerable() { var emptyList = new List <string>(); var subject = new MetaEnumerable <string>(emptyList); using (IEnumerator <MetaEnumerable <string> .Entry> iterator = subject.GetEnumerator()) { Assert.IsFalse(iterator.MoveNext()); } }
private static void TestSingleEntry(MetaEnumerable <string> subject) { using (IEnumerator <MetaEnumerable <string> .Entry> iterator = subject.GetEnumerator()) { Assert.IsTrue(iterator.MoveNext()); Assert.IsTrue(iterator.Current.IsFirst); Assert.IsTrue(iterator.Current.IsLast); Assert.AreEqual("x", iterator.Current.Value); Assert.AreEqual(0, iterator.Current.Index); Assert.IsFalse(iterator.MoveNext()); } }