static ResultsMessage createDummyResultsMessage(String[] columnNames, String[] dataTypes, List records) { ResultsMessage resultsMsg = new ResultsMessage(); resultsMsg.setColumnNames(columnNames); resultsMsg.setDataTypes(dataTypes); resultsMsg.setFirstRow(1); resultsMsg.setLastRow(records.size()); resultsMsg.setFinalRow(records.size()); resultsMsg.setResults((List[])records.toArray(new List[records.size()])); return resultsMsg; }
static ResultsMessage createDummyResultsMessage(String[] columnNames, String[] dataTypes, List records) { ResultsMessage resultsMsg = new ResultsMessage(); resultsMsg.setColumnNames(columnNames); resultsMsg.setDataTypes(dataTypes); resultsMsg.setFirstRow(1); resultsMsg.setLastRow(records.size()); resultsMsg.setFinalRow(records.size()); resultsMsg.setResults((List[])records.toArray(new List[records.size()])); return resultsMsg; }
@Override public ResultsFuture<ResultsMessage> answer(InvocationOnMock invocation) throws Throwable { RequestMessage requestMessage = (RequestMessage)invocation.getArguments()[1]; count[0] += requestMessage.getParameterValues().size(); if (count[0] == 100000) { rm.setException(new TeiidException()); rm.setResults(new List<?>[] {Arrays.asList(Statement.EXECUTE_FAILED)}); } else { List<?>[] vals = new List<?>[requestMessage.getParameterValues().size()]; Arrays.fill(vals, Arrays.asList(0)); rm.setResults(Arrays.asList(vals)); } return results; }}); rm.setUpdateResult(true);
results.add(new BigInteger("300")); //$NON-NLS-1$ results.add(new BigInteger("400")); //$NON-NLS-1$ message.setResults(new List[] {results}); List warnings = new ArrayList(); warnings.add(new Exception("warning1")); //$NON-NLS-1$
response.setResults(keys.getKeys()); response.setLastRow(keys.getKeys().size()); return true;
response.setResults(keys.getKeys()); response.setLastRow(keys.getKeys().size()); return true;
@Test public void testDateType() throws SQLException { RequestMessage request = new RequestMessage(); request.setExecutionId(REQUEST_ID); ResultsMessage resultsMsg = new ResultsMessage(); resultsMsg.setResults(new List[] {Arrays.asList(new Timestamp(0))}); resultsMsg.setColumnNames(new String[] { "TS" }); //$NON-NLS-1$ resultsMsg.setDataTypes(new String[] { DataTypeManager.DefaultDataTypes.TIMESTAMP }); resultsMsg.setFirstRow(1); resultsMsg.setFinalRow(1); resultsMsg.setLastRow(1); ResultSetImpl rs = new ResultSetImpl(resultsMsg, statement); assertTrue(rs.next()); //assumes the mock statement is setup with GMT-5 server and GMT-6 client //will adjust ahead one hour assertEquals(new Timestamp(3600000), rs.getObject(1)); //will be the same as the original assertEquals(new Timestamp(0), rs.getTimestamp(1, Calendar.getInstance(TimeZone.getTimeZone("GMT-05:00")))); //$NON-NLS-1$ }
@Test public void testBatchExecution() throws Exception { ConnectionImpl conn = Mockito.mock(ConnectionImpl.class); Mockito.stub(conn.getConnectionProps()).toReturn(new Properties()); DQP dqp = Mockito.mock(DQP.class); ResultsFuture<ResultsMessage> results = new ResultsFuture<ResultsMessage>(); Mockito.stub(dqp.executeRequest(Mockito.anyLong(), (RequestMessage)Mockito.anyObject())).toReturn(results); ResultsMessage rm = new ResultsMessage(); rm.setResults(new List<?>[] {Arrays.asList(1), Arrays.asList(2)}); rm.setUpdateResult(true); results.getResultsReceiver().receiveResults(rm); Mockito.stub(conn.getDQP()).toReturn(dqp); StatementImpl statement = new StatementImpl(conn, ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_READ_ONLY); statement.clearBatch(); //previously caused npe statement.addBatch("delete from table"); //$NON-NLS-1$ statement.addBatch("delete from table1"); //$NON-NLS-1$ assertTrue(Arrays.equals(new int[] {1, 2}, statement.executeBatch())); }
private ResultsMessage exampleMessage(List<Object>[] results, String[] columnNames, String[] datatypes) { RequestMessage request = new RequestMessage(); request.setExecutionId(REQUEST_ID); ResultsMessage resultsMsg = new ResultsMessage(); resultsMsg.setResults(results); resultsMsg.setColumnNames(columnNames); resultsMsg.setDataTypes(datatypes); resultsMsg.setFinalRow(results.length); resultsMsg.setLastRow(results.length); resultsMsg.setFirstRow(1); return resultsMsg; }
/** with limited metadata info. */ private ResultsMessage exampleResultsMsg2a() { ResultsMessage resultsMsg = exampleResultsMsg2(); List[] results = exampleResults2(); resultsMsg.setDataTypes(dataTypes()); resultsMsg.setColumnNames(columnNames()); resultsMsg.setResults(results); resultsMsg.setFinalRow(results.length); resultsMsg.setLastRow(results.length); resultsMsg.setFirstRow(1); return resultsMsg; }
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 public void testWarnings() throws Exception { ConnectionImpl conn = Mockito.mock(ConnectionImpl.class); Mockito.stub(conn.getConnectionProps()).toReturn(new Properties()); DQP dqp = Mockito.mock(DQP.class); ResultsFuture<ResultsMessage> results = new ResultsFuture<ResultsMessage>(); Mockito.stub(dqp.executeRequest(Mockito.anyLong(), (RequestMessage)Mockito.anyObject())).toReturn(results); ResultsMessage rm = new ResultsMessage(); rm.setResults(new List<?>[] {Arrays.asList(1)}); rm.setWarnings(Arrays.asList(new Throwable())); rm.setColumnNames(new String[] {"expr1"}); rm.setDataTypes(new String[] {"string"}); results.getResultsReceiver().receiveResults(rm); Mockito.stub(conn.getDQP()).toReturn(dqp); StatementImpl statement = new StatementImpl(conn, ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_READ_ONLY) { @Override protected java.util.TimeZone getServerTimeZone() throws java.sql.SQLException { return null; } }; statement.execute("select 'a'"); assertNotNull(statement.getResultSet()); SQLWarning warning = statement.getWarnings(); assertNotNull(warning); assertNull(warning.getNextWarning()); }
@Test public void testOutputParameter() throws Exception { StatementImpl statement = createMockStatement(ResultSet.TYPE_FORWARD_ONLY); ResultsMessage resultsMsg = new ResultsMessage(); resultsMsg.setResults(new List<?>[] {Arrays.asList(1, null, null), Arrays.asList(null, 2, 3)}); resultsMsg.setLastRow(2); resultsMsg.setFirstRow(1); resultsMsg.setFinalRow(2); resultsMsg.setColumnNames(new String[] {"x", "out1", "out2"}); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ resultsMsg.setDataTypes(new String[] {"integer", "integer", "integer"}); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ ResultSetImpl cs = new ResultSetImpl(resultsMsg, statement, null, 2); int count = 0; while (cs.next()) { cs.getObject(1); count++; } assertEquals(1, count); assertTrue(cs.isAfterLast()); assertEquals(2, cs.getOutputParamValue(2)); assertEquals(3, cs.getOutputParamValue(3)); }
@Test public void testGetOutputParameter() throws Exception { CallableStatementImpl mmcs = getCallableStatement(); RequestMessage request = new RequestMessage(); request.setExecutionId(1); ResultsMessage resultsMsg = new ResultsMessage(); List<?>[] results = new List[] {Arrays.asList(null, null, null), Arrays.asList(null, 1, 2)}; resultsMsg.setResults(results); resultsMsg.setColumnNames(new String[] { "IntNum", "Out1", "Out2" }); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ resultsMsg.setDataTypes(new String[] { DataTypeManager.DefaultDataTypes.INTEGER, DataTypeManager.DefaultDataTypes.INTEGER, DataTypeManager.DefaultDataTypes.INTEGER }); resultsMsg.setFinalRow(results.length); resultsMsg.setLastRow(results.length); resultsMsg.setFirstRow(1); resultsMsg.setParameters(Arrays.asList(new ParameterInfo(ParameterInfo.RESULT_SET, 1), new ParameterInfo(ParameterInfo.OUT, 1), new ParameterInfo(ParameterInfo.OUT, 1))); mmcs.createResultSet(resultsMsg); assertEquals(1, mmcs.getInt(1)); assertEquals(2, mmcs.getInt(2)); assertEquals(1, mmcs.getInt("Out1")); assertEquals(2, mmcs.getInt("Out2")); }
@Test public void testXML() throws Exception { StatementImpl statement = createMockStatement(ResultSet.TYPE_FORWARD_ONLY); ResultsFuture<LobChunk> future = new ResultsFuture<LobChunk>(); future.getResultsReceiver().receiveResults(new LobChunk("<a/>".getBytes(Charset.forName("UTF-8")), true)); XMLType result = new XMLType(); Mockito.stub(statement.getDQP().requestNextLobChunk(0, 0, result.getReferenceStreamId())).toReturn(future); ResultsMessage resultsMsg = new ResultsMessage(); result.setEncoding("UTF-8"); resultsMsg.setResults(new List<?>[] {Arrays.asList(result)}); resultsMsg.setLastRow(1); resultsMsg.setFirstRow(1); resultsMsg.setFinalRow(1); resultsMsg.setColumnNames(new String[] {"x"}); //$NON-NLS-1$ resultsMsg.setDataTypes(new String[] {"xml"}); //$NON-NLS-1$ ResultSetImpl cs = new ResultSetImpl(resultsMsg, statement); cs.next(); assertEquals("<a/>", cs.getString(1)); }
rm.setColumnNames(new String[] {"expr1"}); rm.setDataTypes(new String[] {"integer"}); rm.setResults(new List<?>[] {Arrays.asList(1)}); results.getResultsReceiver().receiveResults(rm); Mockito.stub(conn.getDQP()).toReturn(dqp);
response.setResults(keys.getKeys()); response.setLastRow(keys.getKeys().size()); finalRowCount = response.getLastRow(); } else if (finalRowCount == 0 && response.getException() == null) { response.setResults(Arrays.asList(Arrays.asList(0))); finalRowCount = 1;
} else if (finalRowCount == 0 && response.getException() == null) { response.setResults(Arrays.asList(Arrays.asList(0))); if (response.getColumnNames().length != 1) { response.setColumnNames(new String[] {"Count"}); //$NON-NLS-1$
} else if (finalRowCount == 0 && response.getException() == null) { response.setResults(Arrays.asList(Arrays.asList(0))); if (response.getColumnNames().length != 1) { response.setColumnNames(new String[] {"Count"}); //$NON-NLS-1$