Beispiel #1
0
        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());
            }
        }
Beispiel #2
0
        public void SingleEntryEnumerableViaCreate()
        {
            var list = new List <string> {
                "x"
            };

            TestSingleEntry(MetaEnumerable.Create(list));
        }
Beispiel #3
0
        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());
            }
        }
Beispiel #4
0
 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());
     }
 }
Beispiel #5
0
        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);
        }