static List<Object>[] exampleResults1(int length) { return exampleResults1(length, 1); }
/** without metadata info. */ private ResultsMessage exampleResultsMsg1() { return exampleMessage(exampleResults1(5), new String[] { "IntNum" }, new String[] { DataTypeManager.DefaultDataTypes.INTEGER }); //$NON-NLS-1$ }
@Test public void testPrevious() throws Exception { List[] results = exampleResults1(5); ResultSetImpl rs = new ResultSetImpl(exampleResultsMsg1(), statement); while (rs.next()) { // just walk to the end; } // walk reversely; int i = results.length - 1; while (rs.previous()) { List expected = new ArrayList(1); expected.add(new Integer(i + 1)); assertEquals(expected, rs.getCurrentRecord()); i--; } rs.close(); }
/** test hasNext(), actual result set should return TRUE. */ @Test public void testHasNext2() throws Exception { List[] results = exampleResults1(5); ResultSetImpl rs = new ResultSetImpl(exampleResultsMsg1(), statement); for (int i = 1; i < results.length; i++) { rs.next(); } boolean actual = rs.hasNext(); boolean expected = true; assertEquals(expected, actual); rs.close(); }
/** test next(), walk through partial rows of a result set */ @Test public void testNext4() throws Exception { List[] results = exampleResults1(5); ResultSetImpl rs = new ResultSetImpl(exampleResultsMsg1(), statement); for (int i = 0; i < results.length - 1; i++) { rs.next(); List actual = rs.getCurrentRecord(); List expected = results[i]; assertEquals(expected, actual); } rs.close(); }
/** test next(), walk through all rows of a result set and compare each row. */ @Test public void testNext2() throws Exception { List[] results = exampleResults1(5); ResultSetImpl rs = new ResultSetImpl(exampleResultsMsg1(), statement); int i = 0; while (rs.next()) { // walk through and compare List actual = rs.getCurrentRecord(); List expected = results[i]; assertEquals(expected, actual); i++; } rs.close(); }
/** test next() with walking through all the rows and compare records */ @Test public void testNext2() throws SQLException { List<?>[] expected = TestAllResultsImpl.exampleResults1(1000); ResultSetImpl cs = helpExecuteQuery(); int i=0; while(cs.next()) { assertEquals(" Actual doesn't match with expected. ", expected[i], cs.getCurrentRecord()); //$NON-NLS-1$ assertEquals((i < 800?BATCH_SIZE:200) - (i%BATCH_SIZE) - 1, cs.available()); i++; } cs.close(); }
static ResultsMessage exampleResultsMsg4(int begin, int length, boolean lastBatch) { RequestMessage request = new RequestMessage(); request.setExecutionId(REQUEST_ID); ResultsMessage resultsMsg = new ResultsMessage(); List[] results = exampleResults1(length, begin); resultsMsg.setResults(results); resultsMsg.setColumnNames(new String[] { "IntKey" }); //$NON-NLS-1$ resultsMsg.setDataTypes(new String[] { DataTypeManager.DefaultDataTypes.INTEGER }); resultsMsg.setFirstRow(begin); if (lastBatch) { resultsMsg.setFinalRow(begin + results.length - 1); } resultsMsg.setLastRow(begin + results.length - 1); return resultsMsg; }
@Test(expected=TeiidSQLException.class) public void testResultsMessageException() throws Exception { ResultsMessage resultsMsg = exampleMessage(exampleResults1(1), new String[] { "IntNum" }, new String[] { DataTypeManager.DefaultDataTypes.INTEGER }); //$NON-NLS-1$ resultsMsg.setFinalRow(-1); ResultsMessage next = new ResultsMessage(); next.setException(new Throwable()); ResultsFuture<ResultsMessage> rf = new ResultsFuture<ResultsMessage>(); rf.getResultsReceiver().receiveResults(next); Mockito.stub(statement.getDQP().processCursorRequest(0, 2, 0)).toReturn(rf); ResultSetImpl cs = new ResultSetImpl(resultsMsg, statement, null, 2); cs.next(); cs.next(); }
/** walk all way through from the end back to first row */ @Test public void testPrevious3() throws Exception { //large batch size ResultSetImpl cs = helpExecuteQuery(600, 10000, ResultSet.TYPE_SCROLL_INSENSITIVE); List<?>[] expected = TestAllResultsImpl.exampleResults1(10000); while(cs.next()) { } // cursor is after the last row. getRow() should return 0 when not on a valid row assertEquals(" current row doesn't match expected value. ", 0, cs.getRow()); //$NON-NLS-1$ int i= 10000; while (cs.previous()) { //System.out.println(" rs.previous == " + cs.getCurrentRecord()); assertEquals(" Actual doesn't match with expected. ", expected[i-1], cs.getCurrentRecord()); //$NON-NLS-1$ i--; } assertEquals(" current row doesn't match expected value. ", 0, cs.getRow()); //$NON-NLS-1$ cs.close(); }
/** walk all way through from the end back to first row */ @Test public void testPrevious1() throws SQLException { ResultSetImpl cs = helpExecuteQuery(); List<?>[] expected = TestAllResultsImpl.exampleResults1(1000); while(cs.next()) { //System.out.println(" rs.next == " + cs.getCurrentRecord()); } // cursor is after the last row. getRow() should return 0 when not on a valid row assertEquals(" current row doesn't match expected value. ", 0, cs.getRow()); //$NON-NLS-1$ int i= 1000; while (cs.previous()) { //System.out.println(" rs.previous == " + cs.getCurrentRecord()); assertEquals(" Actual doesn't match with expected. ", expected[i-1], cs.getCurrentRecord()); //$NON-NLS-1$ i--; } assertEquals(" current row doesn't match expected value. ", 0, cs.getRow()); //$NON-NLS-1$ cs.close(); }
/** walk all way through from the end back to first row */ @Test public void testPrevious4() throws Exception { //small batch size ResultSetImpl cs = helpExecuteQuery(50, 1000, ResultSet.TYPE_SCROLL_INSENSITIVE); List<?>[] expected = TestAllResultsImpl.exampleResults1(1000); while(cs.next()) { //System.out.println(" rs.next == " + cs.getCurrentRecord()); } // cursor is after the last row. getRow() should return 0 when not on a valid row assertEquals(" current row doesn't match expected value. ", 0, cs.getRow()); //$NON-NLS-1$ int i= 1000; while (cs.previous()) { //System.out.println(" rs.previous == " + cs.getCurrentRecord()); assertEquals(" Actual doesn't match with expected. ", expected[i-1], cs.getCurrentRecord()); //$NON-NLS-1$ i--; } assertEquals(" current row doesn't match expected value. ", 0, cs.getRow()); //$NON-NLS-1$ cs.close(); }