Class LazyTestsToRun

  • All Implemented Interfaces:
    java.lang.Iterable<java.lang.Class<?>>

    final class LazyTestsToRun
    extends TestsToRun
    A variant of TestsToRun that is provided with test class names from an System.in. The method iterator() returns an Iterator that blocks on calls to Iterator.hasNext() or Iterator.next() until new classes are available, or no more classes will be available or the internal stream is closed. The iterator can be used only in one Thread and it is the thread which executes provider implementation.
    • Constructor Detail

      • LazyTestsToRun

        LazyTestsToRun​(ForkedChannelEncoder eventChannel)
        C'tor
        Parameters:
        eventChannel - the output stream to use when requesting new new tests
    • Method Detail

      • iterated

        public java.util.Iterator<java.lang.Class<?>> iterated()
        Overrides:
        iterated in class TestsToRun
        Returns:
        test classes which have been retrieved by iterator().
      • iterator

        public java.util.Iterator<java.lang.Class<?>> iterator()
        The iterator can be used only in one Thread. Returns an iterator over the located java.lang.Class objects
        Specified by:
        iterator in interface java.lang.Iterable<java.lang.Class<?>>
        Overrides:
        iterator in class TestsToRun
        Returns:
        an unmodifiable iterator
        See Also:
        TestsToRun.iterator()
      • allowEagerReading

        public boolean allowEagerReading()
        Overrides:
        allowEagerReading in class TestsToRun
        Returns:
        true, if the classes may be read eagerly. false, if the classes must only be read lazy.
      • findClass

        private static java.lang.Class<?> findClass​(java.lang.String clazz)
      • newWeakIterator

        private java.util.Iterator<java.lang.Class<?>> newWeakIterator()
        Returns:
        snapshot of tests upon constructs of iterator. Therefore weakly consistent while iterator() is being iterated.