package org.wikipedia.util; import android.support.annotation.NonNull; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.wikipedia.dataclient.WikiSite; import org.wikipedia.page.PageTitle; import org.wikipedia.test.TestRunner; import org.wikipedia.testlib.TestLatch; import java.util.ArrayList; import java.util.List; import static org.hamcrest.Matchers.is; import static org.junit.Assert.assertThat; @RunWith(TestRunner.class) public class BatchUtilTest { private ArrayList<PageTitle> titles; private static final int TOTAL = 120; @Before public void setUp() throws Throwable { titles = new ArrayList<>(); for (int i = 0; i < TOTAL; i++) { titles.add(new PageTitle("foo", WikiSite.forLanguageCode("test"))); } } @Test @SuppressWarnings("checkstyle:magicnumber") public void testMwApiBatches() throws Throwable { final TestLatch latch = new TestLatch(); BatchUtil.makeBatches(titles, new BatchUtil.Handler<Integer>() { private List<Integer> sizes = new ArrayList<>(); private int count; @Override public void handleBatch(@NonNull List<PageTitle> batchTitles, int total, BatchUtil.Callback<Integer> cb) { sizes.add(batchTitles.size()); count += batchTitles.size(); if (count == TOTAL) { assertThat(sizes.get(0), is(50)); assertThat(sizes.get(1), is(50)); assertThat(sizes.get(2), is(20)); latch.countDown(); } } }, null); latch.await(); } }