use of org.teiid.translator.google.api.result.PartialResultExecutor in project teiid by teiid.
the class RowsResultTest method offsetTest.
@Test
public void offsetTest() {
final List<SheetRow> all = new ArrayList<SheetRow>();
all.add(new SheetRow(new String[] { "a", "b", "c" }));
all.add(new SheetRow(new String[] { "a2", "b2", "c2" }));
all.add(new SheetRow(new String[] { "a3", "b3", "c3" }));
all.add(new SheetRow(new String[] { "a4", "b4", "c4" }));
all.add(new SheetRow(new String[] { "a5", "b5", "c5" }));
all.add(new SheetRow(new String[] { "a6", "b6", "c6" }));
RowsResult result = new RowsResult(new PartialResultExecutor() {
int called = 0;
@Override
public List<SheetRow> getResultsBatch(int startIndex, int endIndex) {
if (called++ > 1)
Assert.fail("getResultsBatch at most 2 times");
ArrayList<SheetRow> result = new ArrayList<SheetRow>();
if (called == 1) {
result.add(all.get(3));
result.add(all.get(4));
} else if (called == 2)
result.add(all.get(5));
return result;
}
}, 2);
result.setOffset(3);
result.setLimit(3);
int i = 3;
for (SheetRow row : result) {
Assert.assertEquals(all.get(i++), row);
}
Assert.assertEquals("3 iterations should be made", 3, i - 3);
}
use of org.teiid.translator.google.api.result.PartialResultExecutor in project teiid by teiid.
the class RowsResultTest method simpleIteration.
@Test
public void simpleIteration() {
final List<SheetRow> rows = new ArrayList<SheetRow>();
rows.add(new SheetRow(new String[] { "a", "b", "c" }));
rows.add(new SheetRow(new String[] { "a2", "b2", "c2" }));
rows.add(new SheetRow(new String[] { "a3", "b3", "c3" }));
RowsResult result = new RowsResult(new PartialResultExecutor() {
boolean called = false;
@Override
public List<SheetRow> getResultsBatch(int startIndex, int endIndex) {
if (called)
Assert.fail("getResultsBatch should've been called only once");
called = true;
return rows;
}
}, 10);
int i = 0;
for (SheetRow row : result) {
Assert.assertEquals(row, rows.get(i++));
}
}
Aggregations