Search in sources :

Example 6 with PartialResultExecutor

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);
}
Also used : SheetRow(org.teiid.translator.google.api.result.SheetRow) ArrayList(java.util.ArrayList) PartialResultExecutor(org.teiid.translator.google.api.result.PartialResultExecutor) List(java.util.List) ArrayList(java.util.ArrayList) RowsResult(org.teiid.translator.google.api.result.RowsResult) Test(org.junit.Test)

Example 7 with PartialResultExecutor

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++));
    }
}
Also used : SheetRow(org.teiid.translator.google.api.result.SheetRow) ArrayList(java.util.ArrayList) PartialResultExecutor(org.teiid.translator.google.api.result.PartialResultExecutor) List(java.util.List) ArrayList(java.util.ArrayList) RowsResult(org.teiid.translator.google.api.result.RowsResult) Test(org.junit.Test)

Aggregations

Test (org.junit.Test)7 PartialResultExecutor (org.teiid.translator.google.api.result.PartialResultExecutor)7 ArrayList (java.util.ArrayList)6 List (java.util.List)6 RowsResult (org.teiid.translator.google.api.result.RowsResult)6 SheetRow (org.teiid.translator.google.api.result.SheetRow)6