public void CollectionIterator_Current_BecomesNullAtTheEnd()
        {
            CollectionIterator <int> iterator = new CollectionIterator <int>(ListOfTenIntegers);

            for (int i = 1; i <= 10; i++)
            {
                iterator.MoveNext();
            }
            Assert.AreEqual(default(int), iterator.Current);
        }
        public void CollectionIterator_Current_ReturnsCurrentItem()
        {
            CollectionIterator <int> iterator = new CollectionIterator <int>(ListOfTenIntegers);

            for (int i = 1; i <= 10; i++)
            {
                Assert.AreEqual(i, iterator.Current);
                iterator.MoveNext();
            }
        }
        public void CollectionIterator_IsEnd_IndicatesThatIteratorReachesTheEndOfSequence()
        {
            CollectionIterator <int> iterator = new CollectionIterator <int>(ListOfTenIntegers);

            for (int i = 1; i <= 10; i++)
            {
                Assert.IsFalse(iterator.IsEnd);
                iterator.MoveNext();
            }
            Assert.IsTrue(iterator.IsEnd);
        }
        public void CollectionIterator_MoveNext_MovesCurrentPositionToNextItem()
        {
            CollectionIterator <int> iterator = new CollectionIterator <int>(ListOfTenIntegers);

            for (int i = 1; i <= 10; i++)
            {
                Assert.AreEqual(i, iterator.Current);
                Assert.IsFalse(iterator.IsEnd);
                iterator.MoveNext();
            }
            Assert.AreEqual(default(int), iterator.Current);
            Assert.IsTrue(iterator.IsEnd);
        }