package com.braintreegateway.integrationtest;
import com.braintreegateway.Pager;
import com.braintreegateway.ResourceCollection;
import com.braintreegateway.util.NodeWrapper;
import com.braintreegateway.util.NodeWrapperFactory;
import org.junit.Test;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import static org.junit.Assert.assertEquals;
public class ResourceCollectionIT {
private String[] values = new String[]{"a", "b", "c", "d", "e"};
class TestPager implements Pager<String> {
public List<String> getPage(List<String> ids) {
List<String> results = new ArrayList<String>();
for (String id : ids) {
results.add(values[Integer.parseInt(id)]);
}
return results;
}
}
@Test
public void getFirst() {
NodeWrapper xml = NodeWrapperFactory.instance.create("<search-results>" +
"<page-size>2</page-size>" +
"<ids type=\"array\">" +
"<items>0</items>" +
"<items>1</items>" +
"<items>2</items>" +
"<items>3</items>" +
"<items>4</items>" +
"</ids>" +
"</search-results>"
);
ResourceCollection<String> resourceCollection = new ResourceCollection<String>(new TestPager(), xml);
int index = 0;
int count = 0;
for (String string : resourceCollection) {
assertEquals(values[index], string);
index++;
count++;
}
assertEquals(values.length, count);
}
@Test
public void getIds() {
NodeWrapper xml = NodeWrapperFactory.instance.create("<search-results>" +
"<page-size>2</page-size>" +
"<ids type=\"array\">" +
"<items>0</items>" +
"<items>1</items>" +
"<items>2</items>" +
"<items>3</items>" +
"<items>4</items>" +
"</ids>" +
"</search-results>"
);
ResourceCollection<String> resourceCollection = new ResourceCollection<String>(new TestPager(), xml);
List<String> ids = Arrays.asList("0", "1", "2", "3", "4");
assertEquals(resourceCollection.getIds(), ids);
}
@Test
public void getIdsWithEmptyResourceCollection() {
NodeWrapper xml = NodeWrapperFactory.instance.create("<search-results>" +
"<page-size>2</page-size>" +
"</search-results>"
);
ResourceCollection<String> resourceCollection = new ResourceCollection<String>(new TestPager(), xml);
List<String> emptyIds = new ArrayList<String>();
assertEquals(resourceCollection.getIds(), emptyIds);
}
}