Если вы создаете свою собственную реализацию итератора, тогда вам нужно реализовать методы AFAIR 2, и вам нужно проверить, подчиняются ли они контракту.
Теперь это означает: возврат следующего элемента базовой коллекции или выделение исключения и указание, есть ли последующие элементы. Просто вызовите эти методы на своем итераторе и подтвердите результат.