//Dstl (c) Crown Copyright 2017 package uk.gov.dstl.baleen.collectionreaders.helpers; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; import java.io.IOException; import java.util.stream.IntStream; import java.util.stream.Stream; import org.apache.uima.UimaContext; import org.apache.uima.collection.CollectionException; import org.apache.uima.jcas.JCas; import org.apache.uima.resource.ResourceInitializationException; import org.junit.Test; import uk.gov.dstl.baleen.exceptions.BaleenException; public class AbstractStreamCollectionReaderTest { @Test public void testSkip() throws CollectionException, IOException, ResourceInitializationException { FakeStreamCollectionReader r = new FakeStreamCollectionReader(); r.setSkipDocuments(8); r.doInitialize(null); assertTrue(r.doHasNext()); r.doGetNext(null); assertTrue(r.doHasNext()); r.doGetNext(null); assertFalse(r.doHasNext()); } @Test public void testMax() throws ResourceInitializationException, CollectionException, IOException { FakeStreamCollectionReader r = new FakeStreamCollectionReader(); r.setMaxDocuments(2); r.doInitialize(null); assertTrue(r.doHasNext()); r.doGetNext(null); assertTrue(r.doHasNext()); r.doGetNext(null); assertFalse(r.doHasNext()); } public class FakeStreamCollectionReader extends AbstractStreamCollectionReader<Integer> { @Override public void setSkipDocuments(int skipDocuments) { super.setSkipDocuments(skipDocuments); } @Override protected void setMaxDocuments(Integer max) { super.setMaxDocuments(max); } @Override protected Stream<Integer> initializeStream(UimaContext context) throws BaleenException { return IntStream.range(0, 10).boxed(); } @Override protected void apply(Integer next, JCas jCas) { // Do nothing } @Override protected void doClose() throws IOException { // Do nothing } } }