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 SingleEntryEnumerableViaCreate() { var list = new List <string> { "x" }; TestSingleEntry(MetaEnumerable.Create(list)); }
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()); } }
public void SingleEntryUntypedEnumerable() { var list = new List <string> { "x" }; IEnumerable subject = new MetaEnumerable <string>(list); int index = 0; foreach (MetaEnumerable <string> .Entry item in subject) { // only expecting 1 Assert.AreEqual(0, index++); Assert.AreEqual("x", item.Value); Assert.IsTrue(item.IsFirst); Assert.IsTrue(item.IsLast); Assert.AreEqual(0, item.Index); } Assert.AreEqual(1, index); }