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; }
public static ResultsMessage example() { ResultsMessage message = new ResultsMessage(); message.setColumnNames(new String[] {"A", "B", "C", "D"}); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ message.setDataTypes(new String[] {DataTypeManager.DefaultDataTypes.BIG_INTEGER, DataTypeManager.DefaultDataTypes.BIG_INTEGER, DataTypeManager.DefaultDataTypes.BIG_INTEGER,
response.setDataTypes(dataTypes); response.setResults(keys.getKeys()); response.setLastRow(keys.getKeys().size());
response.setDataTypes(dataTypes); response.setResults(keys.getKeys()); response.setLastRow(keys.getKeys().size());
@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$ }
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.setUpdateResult(true); rm.setColumnNames(new String[] {"expr1"}); rm.setDataTypes(new String[] {"integer"}); rm.setResults(new List<?>[] {Arrays.asList(1)}); results.getResultsReceiver().receiveResults(rm);
response.setDataTypes(dataTypes); response.setResults(keys.getKeys()); response.setLastRow(keys.getKeys().size());
if (response.getColumnNames().length != 1) { response.setColumnNames(new String[] {"Count"}); //$NON-NLS-1$ response.setDataTypes(new String[] {"integer"}); //$NON-NLS-1$
if (response.getColumnNames().length != 1) { response.setColumnNames(new String[] {"Count"}); //$NON-NLS-1$ response.setDataTypes(new String[] {"integer"}); //$NON-NLS-1$