package com.twilio.base; import com.twilio.http.TwilioRestClient; import com.twilio.rest.api.v2010.account.Call; import com.twilio.rest.api.v2010.account.CallReader; import mockit.Expectations; import mockit.Mocked; import org.junit.Assert; import org.junit.Test; import java.util.Collections; public class ReaderTest { @Test public void testNoPagingDefaults() { Reader<Call> reader = new CallReader(); Assert.assertNull(reader.getLimit()); Assert.assertNull(reader.getPageSize()); } @Test public void testSetPageSize() { Reader<Call> reader = new CallReader().pageSize(100); Assert.assertEquals(100, reader.getPageSize().intValue()); Assert.assertNull(reader.getLimit()); } @Test public void testMaxPageSize() { Reader<Call> reader = new CallReader().pageSize(Integer.MAX_VALUE); Assert.assertEquals(1000, reader.getPageSize().intValue()); Assert.assertNull(reader.getLimit()); } @Test public void testSetLimit() { Reader<Call> reader = new CallReader().limit(100); Assert.assertEquals(100, reader.getLimit().intValue()); Assert.assertEquals(100, reader.getPageSize().intValue()); } @Test public void testSetLimitMaxPageSize() { Reader<Call> reader = new CallReader().limit(Integer.MAX_VALUE); Assert.assertEquals(Integer.MAX_VALUE, reader.getLimit().intValue()); Assert.assertEquals(1000, reader.getPageSize().intValue()); } @Test public void testSetPageSizeLimit() { Reader<Call> reader = new CallReader().limit(1000).pageSize(5); Assert.assertEquals(1000, reader.getLimit().intValue()); Assert.assertEquals(5, reader.getPageSize().intValue()); } @Test public void testNoPageLimit(@Mocked final TwilioRestClient client, @Mocked final Page<Call> page) { new Expectations() {{ page.getRecords(); result = Collections.emptyList(); }}; Reader<Call> reader = new CallReader(); ResourceSet<Call> set = new ResourceSet<>(reader, client, page); Assert.assertEquals(Long.MAX_VALUE, set.getPageLimit()); } @Test public void testHasPageLimit(@Mocked final TwilioRestClient client, @Mocked final Page<Call> page) { new Expectations() {{ page.getRecords(); result = Collections.emptyList(); page.getPageSize(); result = 50; }}; Reader<Call> reader = new CallReader().limit(100); ResourceSet<Call> set = new ResourceSet<>(reader, client, page); Assert.assertEquals(2, set.getPageLimit()); } @Test public void testUnevenHasPageLimit(@Mocked final TwilioRestClient client, @Mocked final Page<Call> page) { new Expectations() {{ page.getRecords(); result = Collections.emptyList(); page.getPageSize(); result = 50; }}; Reader<Call> reader = new CallReader().limit(125); ResourceSet<Call> set = new ResourceSet<>(reader, client, page); Assert.assertEquals(3, set.getPageLimit()); } }