From 19bc09b4d594cd41ec02b08369720bc0e4cade66 Mon Sep 17 00:00:00 2001 From: Mariusz Smykula Date: Sun, 10 Feb 2019 22:11:27 +0100 Subject: [PATCH] verify that PagerSplitter can collect data page by page --- .../gitlab4j/api/PagerSpliteratorTest.java | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/src/test/java/org/gitlab4j/api/PagerSpliteratorTest.java b/src/test/java/org/gitlab4j/api/PagerSpliteratorTest.java index c727b4e2d..e6b46fb1c 100644 --- a/src/test/java/org/gitlab4j/api/PagerSpliteratorTest.java +++ b/src/test/java/org/gitlab4j/api/PagerSpliteratorTest.java @@ -1,6 +1,7 @@ package org.gitlab4j.api; import java.util.Collections; +import java.util.stream.StreamSupport; import org.junit.Assert; import org.junit.Before; @@ -9,6 +10,8 @@ import org.mockito.Mock; import org.mockito.junit.MockitoJUnitRunner; +import static java.util.Arrays.asList; +import static org.junit.Assert.assertArrayEquals; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; @@ -53,4 +56,23 @@ public void shouldThrowNullPointerExceptionWhenActionIsMissing() { assertEquals(NullPointerException.class, e.getClass()); } } + + @Test + public void shouldAllowToGatherDataPageByPage() { + when(pager.hasNext()).thenReturn(true); + when(pager.getTotalItems()).thenReturn(12); + when(pager.next()) + .thenReturn(asList(1, 2, 3)) + .thenReturn(asList(4, 5, 6)) + .thenReturn(asList(7, 8, 9)) + .thenReturn(asList(0, 1, 2)); + + Integer[] elements = StreamSupport.stream(new PagerSpliterator(pager), false) + .parallel() // should be ignored + .skip(2) // should be ignored + .limit(5) + .toArray(Integer[]::new); + + assertArrayEquals(new Integer[]{1, 2, 3, 4, 5}, elements); + } } \ No newline at end of file