| /* |
| * Copyright (C) 2007 Google Inc. |
| * |
| * Licensed under the Apache License, Version 2.0 (the "License"); |
| * you may not use this file except in compliance with the License. |
| * You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| * See the License for the specific language governing permissions and |
| * limitations under the License. |
| */ |
| |
| package libcore.java.sql; |
| |
| |
| import java.net.MalformedURLException; |
| import java.net.URL; |
| import java.sql.DatabaseMetaData; |
| import java.sql.Date; |
| import java.sql.PreparedStatement; |
| import java.sql.ResultSet; |
| import java.sql.ResultSetMetaData; |
| import java.sql.SQLException; |
| import java.sql.Statement; |
| import java.sql.Time; |
| import java.sql.Timestamp; |
| import java.util.Arrays; |
| import java.util.Calendar; |
| import java.util.GregorianCalendar; |
| import java.util.Iterator; |
| import java.util.LinkedList; |
| import java.util.List; |
| import java.util.ListIterator; |
| |
| /** |
| * Tests based on |
| * <a href="http://java.sun.com/products/jdbc/download.html">JDBC 1.0 API spec</a> Table 1.0 |
| */ |
| public final class OldResultSetGetterTests extends OldSQLTest { |
| |
| String queryAllSelect = "select * from type"; |
| |
| ResultSet res = null; |
| |
| Statement st = null; |
| |
| // Judgement concerning support is based on the result of ResultSet.getOject |
| // and Table 1 of JDBC 1.0 spec. |
| static boolean booleanSupported = false; |
| static boolean blobSupported = false; |
| static boolean bigIntSupported = false; |
| static boolean smallIntSupported = false; |
| static boolean mediumIntSupported = false; |
| static boolean realSupported = false; |
| static boolean floatSupported = false; |
| static boolean dateSupported = false; |
| static boolean timeSupported = false; |
| static boolean timeStampSupported = false; |
| static boolean dateTimeSupported = false; |
| static boolean urlSupported= false; |
| static boolean tinyIntSupported = false; |
| static boolean decimalSupported = false; |
| static boolean numericSupported = false; |
| |
| static List<String> colNames = Arrays.asList("BoolVal", "IntVal", "LongVal", |
| "Bint", "Tint", "Sint", "Mint", "IntegerVal", "RealVal", |
| "DoubleVal", "FloatVal", "DecVal", "NumVal", "charStr", |
| "dateVal", "timeVal", "TS", "DT", "TBlob", "BlobVal", "MBlob", |
| "LBlob", "TText", "TextVal", "MText", "LText", "MaxLongVal", |
| "MinLongVal", "validURL", "invalidURL"); |
| |
| static List<String> values = Arrays.asList("1", "-1", "22", "2", "33", |
| "3","1","2","3.9","23.2","33.3","44", |
| "5", "test string", "1799-05-26", "12:35:45", "2007-10-09 14:28:02.0", |
| "1221-09-22 10:11:55","1","2","3","4","Test text message tiny", |
| "Test text", "Test text message medium", |
| "Test text message long"); |
| |
| static boolean[] supported = new boolean[]{ |
| booleanSupported, |
| true, |
| true, |
| bigIntSupported, |
| tinyIntSupported, |
| smallIntSupported, |
| mediumIntSupported, |
| true, |
| realSupported, |
| true, |
| floatSupported, |
| decimalSupported, |
| numericSupported, |
| true, |
| dateSupported, |
| timeSupported, |
| timeStampSupported, |
| dateTimeSupported, |
| blobSupported, |
| blobSupported, |
| blobSupported, |
| blobSupported, |
| true, |
| true, |
| true, |
| true, |
| bigIntSupported, |
| bigIntSupported, |
| urlSupported, |
| urlSupported |
| }; |
| |
| // Not supported: BIT,VARBINARY, LONGVARBINARY, BINARY, VARCHAR, LONGVARCHAR |
| static Class[] typeMap = new Class[]{ |
| java.lang.String.class, // |
| java.lang.Integer.class,//Types.INTEGER, |
| java.lang.Integer.class, //Types.LONG, not a JDBC 1.0 type |
| java.lang.Long.class, // Types.BIGINT, |
| java.lang.Byte.class, // Types.TINYINT, |
| java.lang.Short.class, // Types.SMALLINT, |
| java.lang.Integer.class, //Types.MEDIUMINT, , not a JDBC 1.0 type |
| java.lang.Integer.class, // Types.Integer |
| java.lang.Float.class, // Types.REAL, |
| java.lang.Double.class, // Types.FLOAT, |
| java.lang.Double.class, // Types.DOUBLE, |
| java.math.BigDecimal.class, // Types.DECIMAL, |
| java.math.BigDecimal.class, // Types.NUMERIC, |
| java.lang.String.class, // Types.CHAR |
| java.sql.Date.class, // Types.DATE, |
| java.sql.Time.class, // Types.TIME, |
| java.sql.Timestamp.class, // Types.TIMESTAMP, |
| java.sql.Date.class, // types datetime, not a JDBC 1.0 type |
| java.sql.Blob.class, // Types.BLOB, not a JDBC 1.0 type |
| java.sql.Blob.class, // Types.BLOB, not a JDBC 1.0 type |
| java.sql.Blob.class, // Types.BLOB, not a JDBC 1.0 type |
| java.sql.Blob.class, // Types.BLOB, not a JDBC 1.0 type |
| java.lang.String.class, // not a JDBC 1.0 type |
| java.lang.String.class, // not a JDBC 1.0 type |
| java.lang.String.class, // not a JDBC 1.0 type |
| java.lang.String.class, // not a JDBC 1.0 type |
| java.lang.Long.class, // Types.BIGINT, |
| java.lang.Long.class, // Types.BIGINT, |
| java.net.URL.class, // not a JDBC 1.0 type |
| java.net.URL.class // not a JDBC 1.0 type |
| |
| |
| }; |
| |
| // first inserted row : actual values |
| // second inserted row: null values |
| String[] queries = { |
| "create table type (" + |
| |
| " BoolVal BOOLEAN," + " IntVal INT," + " LongVal LONG," |
| + " Bint BIGINT," + " Tint TINYINT," + " Sint SMALLINT," |
| + " Mint MEDIUMINT, " + |
| |
| " IntegerVal INTEGER, " + " RealVal REAL, " |
| + " DoubleVal DOUBLE, " + " FloatVal FLOAT, " |
| + " DecVal DECIMAL, " + |
| |
| " NumVal NUMERIC, " + " charStr CHAR(20), " |
| + " dateVal DATE, " + " timeVal TIME, " + " TS TIMESTAMP, " |
| + |
| |
| " DT DATETIME, " + " TBlob TINYBLOB, " + " BlobVal BLOB, " |
| + " MBlob MEDIUMBLOB, " + " LBlob LONGBLOB, " + |
| |
| " TText TINYTEXT, " + " TextVal TEXT, " |
| + " MText MEDIUMTEXT, " + " LText LONGTEXT, " + |
| |
| " MaxLongVal BIGINT, MinLongVal BIGINT, "+ |
| |
| " validURL URL, invalidURL URL "+ |
| |
| ");" |
| , |
| |
| "insert into type (BoolVal, IntVal, LongVal, Bint, Tint, Sint, Mint," |
| + "IntegerVal, RealVal, DoubleVal, FloatVal, DecVal," |
| + "NumVal, charStr, dateVal, timeVal, TS," |
| + "DT, TBlob, BlobVal, MBlob, LBlob," |
| + "TText, TextVal, MText, LText, MaxLongVal, MinLongVal," |
| + " validURL, invalidURL" |
| + ") " |
| + "values (1, -1, 22, 2, 33," |
| + "3, 1, 2, 3.9, 23.2, 33.3, 44," |
| + "5, 'test string', '1799-05-26', '12:35:45', '2007-10-09 14:28:02.0'," |
| + "'1221-09-22 10:11:55', 1, 2, 3, 4," |
| + "'Test text message tiny', 'Test text'," |
| + " 'Test text message medium', 'Test text message long', " |
| + Long.MAX_VALUE+", "+Long.MIN_VALUE+", " |
| + "'http://www.android.com', 'helloWorld' "+ |
| ");" |
| , |
| |
| "insert into type (BoolVal, IntVal, LongVal, Bint, Tint, Sint, Mint," |
| + "IntegerVal, RealVal, DoubleVal, FloatVal, DecVal," |
| + "NumVal, charStr, dateVal, timeVal, TS," |
| + "DT, TBlob, BlobVal, MBlob, LBlob," |
| + "TText, TextVal, MText, LText, MaxLongVal, MinLongVal," |
| +" validURL, invalidURL" |
| + ") " |
| + "values (null, null, null, null, null," |
| + "null, null, null, null, null, null, null," |
| + "null, null, null, null, null," |
| + "null, null, null, null, null," |
| + "null, null, null, null,null, null, null, null);" |
| }; |
| |
| @Override |
| public void setUp() throws Exception { |
| super.setUp(); |
| conn.setAutoCommit(false); |
| st = conn.createStatement(); |
| for (int i = 0; i < queries.length; i++) { |
| st.execute(queries[i]); |
| } |
| res = st.executeQuery(queryAllSelect); |
| assertTrue(res.next()); |
| } |
| |
| public void tearDown() throws SQLException { |
| try { |
| st.execute("drop table if exists type"); |
| st.close(); |
| res.close(); |
| } finally { |
| try { |
| st.close(); |
| res.close(); |
| } catch (SQLException ee) { |
| } |
| } |
| super.tearDown(); |
| } |
| |
| public void testGetBytesInt() throws SQLException { |
| int i = 1; |
| // null value |
| i = 1; |
| res.next(); |
| for (String t : values) { |
| assertNull(res.getBytes(i)); |
| i++; |
| } |
| |
| try { |
| res.close(); |
| res.getBytes(24); |
| fail("Should get Exception"); |
| } catch (SQLException e) { |
| //ok |
| } |
| |
| } |
| |
| public void testGetBytesIntVarbinary() throws SQLException { |
| Statement st = null; |
| Statement stQuery = null; |
| PreparedStatement stPrep = null; |
| ResultSet res = null; |
| |
| // setup |
| try { |
| String testString = "HelloWorld"; |
| st = conn.createStatement(); |
| st.executeUpdate("create table testBinary (VARBINARY value);"); |
| stPrep = conn |
| .prepareStatement("insert into testBinary values (?);"); |
| stPrep.setBytes(1, testString.getBytes()); |
| stPrep.execute(); |
| |
| stQuery = conn.createStatement(); |
| res = stQuery.executeQuery("select * from testBinary"); |
| assertTrue(res.next()); |
| byte[] output = res.getBytes(1); |
| String helloTest = new String(output); |
| assertNotNull(helloTest); |
| assertEquals(testString, helloTest); |
| } finally { |
| if (res != null) res.close(); |
| if (stPrep != null) stPrep.close(); |
| if (st != null) st.close(); |
| if (stQuery != null) stQuery.close(); |
| } |
| } |
| |
| public void testGetBytesIntBinary() throws SQLException { |
| |
| Statement st = null; |
| Statement stQuery = null; |
| PreparedStatement stPrep = null; |
| ResultSet res = null; |
| |
| |
| // setup |
| |
| String testString = "HelloWorld"; |
| st = conn.createStatement(); |
| st.executeUpdate("create table testBinary (BINARY value);"); |
| stPrep = conn.prepareStatement("insert into testBinary values (?);"); |
| stPrep.setBytes(1, testString.getBytes()); |
| stPrep.execute(); |
| try { |
| stQuery = conn.createStatement(); |
| res = stQuery.executeQuery("select * from testBinary"); |
| assertTrue(res.next()); |
| byte[] output = res.getBytes(1); |
| String helloTest = new String(output); |
| assertNotNull(helloTest); |
| assertEquals(testString, helloTest); |
| } finally { |
| if (res != null) res.close(); |
| if (stPrep != null) stPrep.close(); |
| if (st != null) st.close(); |
| if (stQuery != null) stQuery.close(); |
| } |
| } |
| |
| public void testGetBytesString() throws SQLException { |
| int i = 1; |
| |
| // null value |
| res.next(); |
| for (String t : colNames) { |
| assertNull(res.getBytes(t)); |
| } |
| |
| try { |
| res.close(); |
| res.getBytes(colNames.get(24)); |
| fail("Should get Exception"); |
| } catch (SQLException e) { |
| //ok |
| } |
| } |
| |
| // last assertion fails: invalid conversion. Test passes on RI |
| public void testGetBytesStringVarbinary() throws SQLException { |
| Statement st = null; |
| Statement stQuery = null; |
| PreparedStatement stPrep = null; |
| ResultSet res = null; |
| |
| // setup |
| try { |
| String testString = "HelloWorld"; |
| st = conn.createStatement(); |
| st.executeUpdate("create table testBinary (VARBINARY value);"); |
| stPrep = conn |
| .prepareStatement("insert into testBinary values (?);"); |
| stPrep.setBytes(1, testString.getBytes()); |
| stPrep.execute(); |
| |
| stQuery = conn.createStatement(); |
| res = stQuery.executeQuery("select value from testBinary"); |
| assertTrue(res.next()); |
| byte[] output = res.getBytes("value"); |
| String helloTest = new String(output); |
| assertNotNull(helloTest); |
| assertEquals(testString, helloTest); |
| } finally { |
| if (res != null) res.close(); |
| if (stPrep != null) stPrep.close(); |
| if (st != null) st.close(); |
| if (stQuery != null) stQuery.close(); |
| } |
| |
| } |
| |
| // last assertion fails: invalid conversion. Test passes on RI |
| public void testGetBytesStringBinary() throws SQLException { |
| Statement st = null; |
| Statement stQuery = null; |
| PreparedStatement stPrep = null; |
| ResultSet res = null; |
| |
| // setup |
| |
| String testString = "HelloWorld"; |
| st = conn.createStatement(); |
| st.executeUpdate("create table testBinary (BINARY value);"); |
| stPrep = conn.prepareStatement("insert into testBinary values (?);"); |
| stPrep.setBytes(1, testString.getBytes()); |
| stPrep.execute(); |
| try { |
| stQuery = conn.createStatement(); |
| res = stQuery.executeQuery("select value from testBinary"); |
| assertTrue(res.next()); |
| byte[] output = res.getBytes("value"); |
| String helloTest = new String(output); |
| assertNotNull(helloTest); |
| assertEquals(testString, helloTest); |
| } finally { |
| if (res != null) res.close(); |
| if (stPrep != null) stPrep.close(); |
| if (st != null) st.close(); |
| if (stQuery != null) stQuery.close(); |
| } |
| } |
| |
| public void testGetConcurrency() throws SQLException { |
| assertEquals(ResultSet.CONCUR_UPDATABLE, res.getConcurrency()); |
| } |
| |
| public void testGetDateInt() throws SQLException { |
| GregorianCalendar testCal = new GregorianCalendar(1799, Calendar.MAY, 26, 0, 0); |
| Date input = new Date(testCal.getTimeInMillis()); |
| Date d = res.getDate(15); |
| assertEquals(input.toString(),"1799-05-26"); |
| assertEquals(input,d); |
| |
| try { |
| d = res.getDate(500); |
| fail("Should get exception"); |
| } catch (SQLException e) { |
| //ok |
| } |
| |
| // null value |
| assertTrue(res.next()); |
| d = res.getDate(15); |
| assertNull(d); |
| } |
| |
| public void testGetDateIntCalendar() throws SQLException { |
| GregorianCalendar testCal = new GregorianCalendar(1799, Calendar.MAY, 26, 0, 0); |
| Date input = new Date(testCal.getTimeInMillis()); |
| Date d = res.getDate(15, testCal); |
| |
| assertEquals(input.toString(),"1799-05-26"); |
| assertEquals(input,d); |
| |
| try { |
| d = res.getDate(500, testCal); |
| fail("Should get exception"); |
| } catch (SQLException e) { |
| //ok |
| } |
| |
| |
| // null value |
| assertTrue(res.next()); |
| d = res.getDate(15,testCal); |
| assertNull(d); |
| } |
| |
| public void testGetDateString() throws SQLException { |
| GregorianCalendar testCal = new GregorianCalendar(1799, Calendar.MAY, 26, 0, 0); |
| Date input = new Date(testCal.getTimeInMillis()); |
| Date d = res.getDate("dateVal"); |
| assertEquals(input.toString(),"1799-05-26"); |
| assertEquals(input,d); |
| |
| try { |
| d = res.getDate("bla"); |
| fail("Should get exception"); |
| } catch (SQLException e) { |
| //ok |
| } |
| |
| // null value |
| assertTrue(res.next()); |
| d = res.getDate("dateVal"); |
| assertNull(d); |
| } |
| |
| public void testGetDateStringCalendar() throws SQLException { |
| GregorianCalendar testCal = new GregorianCalendar(1799, Calendar.MAY, 26, 0, 0); |
| Date input = new Date(testCal.getTimeInMillis()); |
| Date d = res.getDate("dateVal", testCal); |
| assertEquals(input.toString(),"1799-05-26"); |
| assertEquals(input,d); |
| |
| try { |
| res.getDate("bla", testCal); |
| fail("Should get exception"); |
| } catch (SQLException e) { |
| //ok |
| } |
| |
| // null value |
| assertTrue(res.next()); |
| d = res.getDate("dateVal",testCal); |
| assertNull(d); |
| } |
| |
| public void testGetDoubleInt() throws SQLException { |
| double output = 0.0; |
| double[] input = {2.0, 3.9 , 23.2}; |
| |
| output = res.getDouble(8); |
| assertEquals(input[0],output); |
| |
| output = res.getDouble(9); |
| assertEquals(input[1],output); |
| |
| output = res.getDouble(10); |
| assertEquals(input[2],output); |
| |
| try { |
| res.getDouble(500); |
| } catch (SQLException e) { |
| //ok |
| } |
| |
| // null value |
| res.next(); |
| output = res.getDouble(8); |
| assertEquals(0.0,output); |
| |
| output = res.getDouble(9); |
| assertEquals(0.0,output); |
| |
| output = res.getDouble(10); |
| assertEquals(0.0,output); |
| } |
| |
| public void testGetDoubleString() throws SQLException { |
| double input = 23.2; |
| double output = 0.0; |
| |
| output = res.getDouble("DoubleVal"); |
| assertEquals (input,output); |
| |
| try{ |
| res.getDouble("bla"); |
| fail("Exception expected"); |
| } catch (SQLException e) { |
| // ok |
| } |
| |
| // null value |
| assertTrue(res.next()); |
| output = res.getDouble("DoubleVal"); |
| assertEquals (0.0 , output); |
| } |
| |
| public void testGetFloatInt() throws SQLException { |
| float defaultF = 0.0f; |
| float[] input = {3.9f, 23.2f, 33.3f}; |
| |
| float output = res.getFloat(9); |
| assertEquals(input[0], output); |
| |
| output = res.getFloat(10); |
| assertEquals(input[1], output); |
| |
| output = res.getFloat(11); |
| assertEquals(input[2], output); |
| |
| try { |
| res.getFloat(500); |
| fail("Exception expected"); |
| } catch (SQLException e) { |
| //ok |
| } |
| |
| res.next(); |
| output = res.getFloat(8); |
| assertEquals(defaultF, output); |
| |
| output = res.getFloat(9); |
| assertEquals(defaultF, output); |
| |
| output = res.getFloat(10); |
| assertEquals(defaultF, output); |
| } |
| |
| public void testGetFloatString() throws SQLException { |
| float defaultF = 0.0f; |
| String[] input = {"RealVal", "DoubleVal", "FloatVal"}; |
| float[] inputF = {3.9f, 23.2f, 33.3f}; |
| |
| float output = res.getFloat(input[0]); |
| assertEquals(inputF[0], output); |
| |
| output = res.getFloat(input[1]); |
| assertEquals(inputF[1], output); |
| |
| output = res.getFloat(input[2]); |
| assertEquals(inputF[2], output); |
| |
| try { |
| res.getFloat(500); |
| fail("Exception expected"); |
| } catch (SQLException e) { |
| //ok |
| } |
| |
| res.next(); |
| output = res.getFloat(8); |
| assertEquals(defaultF, output); |
| |
| output = res.getFloat(9); |
| assertEquals(defaultF, output); |
| |
| output = res.getFloat(10); |
| assertEquals(defaultF, output); |
| } |
| |
| public void testGetIntInt() throws SQLException { |
| // real input val -1, 22, 2, 33,3, 1, 2 |
| List<Integer> input = Arrays.asList(1, -1, 22, 2, 33,3, 1, 2); |
| ListIterator<Integer> it = input.listIterator(); |
| Double test2 = new Double(23.2); |
| for (int i = 1;i<9;i++ ) { |
| assertEquals(it.next().intValue(),res.getInt(i)); |
| } |
| |
| try { |
| res.getInt(500); |
| fail("Exception expected"); |
| } catch (SQLException e) { |
| //ok |
| } |
| |
| res.next(); |
| for (int i = 2;i<11;i++ ) { |
| assertEquals(0,res.getInt(i)); |
| } |
| } |
| |
| public void testGetIntString() throws SQLException { |
| List<String> inputS = Arrays.asList("BoolVal", "IntVal", "LongVal", |
| "Bint", "Tint", "Sint", "Mint", "IntegerVal"); |
| ListIterator<String> itS = inputS.listIterator(); |
| List<Integer> input = Arrays.asList(1, -1, 22, 2, 33, 3, 1, 2); |
| ListIterator<Integer> it = input.listIterator(); |
| while (it.hasNext()) { |
| assertEquals(it.next().intValue(), res.getInt(itS.next())); |
| } |
| |
| try { |
| res.getInt("bla"); |
| fail("Exception expected"); |
| } catch (SQLException e) { |
| //ok |
| } |
| |
| res.next(); |
| for (String s : inputS) { |
| assertEquals(0, res.getInt(s)); |
| } |
| } |
| |
| public void testGetLongInt() throws SQLException { |
| long maxVal = Long.MAX_VALUE; |
| long minVal = Long.MIN_VALUE; |
| |
| assertEquals(maxVal, res.getLong(27)); |
| assertEquals(minVal, res.getLong(28)); |
| |
| try { |
| res.getInt(500); |
| fail("Exception expected"); |
| } catch (SQLException e) { |
| //ok |
| } |
| |
| res.next(); |
| assertEquals(0, res.getLong(27)); |
| assertEquals(0, res.getLong(28)); |
| } |
| |
| public void testGetLongString() throws SQLException { |
| long maxVal = Long.MAX_VALUE; |
| long minVal = Long.MIN_VALUE; |
| assertEquals(maxVal, res.getLong("MaxLongVal")); |
| assertEquals(minVal, res.getLong("MinLongVal")); |
| |
| try { |
| res.getInt("bla"); |
| fail("Exception expected"); |
| } catch (SQLException e) { |
| //ok |
| } |
| |
| res.next(); |
| assertEquals(0,res.getLong("MaxLongVal")); |
| assertEquals(0,res.getLong("MinLongVal")); |
| } |
| |
| /** |
| * Test method for {@link java.sql.ResultSet#getMetaData()}. |
| * type mappings according to |
| * http://java.sun.com/j2se/1.3/docs/guide/jdbc/spec/jdbc-spec.frame8.html |
| * Not supported datatypes are not checked. |
| * |
| * Wrong value returned for Long: java.lang.String (VARCHAR) |
| */ |
| public void testGetMetaData() throws SQLException { |
| /* |
| * List<String> types = Arrays.asList("BOOLEAN", "INT", "LONG", |
| * "BIGINT", "TINYINT", "SMALLINT", "MEDIUMINT", "INTEGER", "REAL", |
| * "DOUBLE", "FLOAT", "DECIMAL", "NUMERIC", "CHAR(20)", "DATE", "TIME", |
| * "TIMESTAMP", "DATETIME", "TINYBLOB", "BLOB", "MEDIUMBLOB", |
| * "LONGBLOB", "TINYTEXT", "TEXT", "MEDIUMTEXT", "LONGTEXT", "BIGINT", |
| * "BIGINT","URL","URL"); |
| */ |
| List<String> types = Arrays.asList("VARCHAR", "INTEGER", "INTEGER", |
| "BIGINT", "SMALLINT", "SHORT", "INTEGER", "INTEGER", "FLOAT", |
| "DOUBLE", "DOUBLE", "DECIMAL", "NUMERIC", "VARCHAR", "DATE", |
| "TIME", "TIMESTAMP", "DATETIME", "BLOB", "BLOB", "BLOB", |
| "BLOB", "VARCHAR", "VARCHAR", "VARCHAR", "VARCHAR", "BIGINT", |
| "BIGINT", "URL", "URL"); |
| |
| |
| |
| ListIterator<String> it = types.listIterator(); |
| ListIterator<String> colNameIt = colNames.listIterator(); |
| ResultSetMetaData meta = res.getMetaData(); |
| assertNotNull(meta); |
| assertEquals("Error in test setup. Columns do not match", types |
| .size(), meta.getColumnCount()); |
| for (int i = 1; i < 31; i++) { |
| String colName = colNameIt.next(); |
| String type = it.next(); |
| if (supported[i - 1]) { |
| assertTrue("Wrong column name at " + i, colName |
| .equalsIgnoreCase(meta.getColumnName(i))); |
| assertTrue("Wrong type at " + i+" required" +type+ " but is "+meta.getColumnTypeName(i), type.equalsIgnoreCase(meta |
| .getColumnTypeName(i))); |
| } |
| } |
| } |
| |
| // Wrong value returned for Long: java.lang.String |
| public void testGetObjectInt() throws SQLException { |
| for (int i = 1; i <= typeMap.length; i++) { |
| if (supported[i-1]) { |
| Object value = res.getObject(i); |
| assertTrue("value " + value.getClass().getName() |
| + " does not correspond " + typeMap[i-1] + "at "+i, value |
| .getClass().equals(typeMap[i-1])); |
| } |
| } |
| |
| try { |
| res.getObject(500); |
| fail("Exception expected"); |
| } catch (SQLException e) { |
| //ok |
| } |
| |
| res.next(); |
| for (int i = 1; i <= typeMap.length; i++) { |
| Object value = res.getObject(i); |
| assertNull(value); |
| } |
| } |
| |
| // Wrong value returned for Long: java.lang.String |
| public void testGetObjectString() throws SQLException { |
| ListIterator<String> colNameIt = colNames.listIterator(); |
| for (int i = 1; i <= typeMap.length; i++) { |
| String name = colNameIt.next(); |
| if (supported[i-1]) { |
| Object value = res.getObject(name); |
| assertTrue("value " + value.getClass().getName() |
| + " for "+name+" does not correspond " + typeMap[i-1] + "at "+i, value |
| .getClass().equals(typeMap[i-1])); |
| } |
| } |
| |
| try { |
| res.getObject("bla"); |
| fail("Exception expected"); |
| } catch (SQLException e) { |
| //ok |
| } |
| |
| |
| colNameIt = colNames.listIterator(); |
| res.next(); |
| for (int i = 1; i <= typeMap.length; i++) { |
| Object value = res.getObject(colNameIt.next()); |
| assertNull(value); |
| } |
| } |
| |
| // If there is no current row 0 must be returned. res.close() does not wrap up |
| public void testGetRow() throws SQLException { |
| assertEquals(1, res.getRow()); |
| assertTrue(res.isFirst()); |
| res.next(); |
| assertEquals(2, res.getRow()); |
| assertTrue(res.isLast()); |
| res.next(); |
| assertTrue(res.isAfterLast()); |
| assertEquals(0, res.getRow()); |
| |
| try { |
| res.close(); |
| res.getRow(); |
| } catch (SQLException e) { |
| // ok |
| } |
| } |
| |
| public void testGetShortInt() throws SQLException { |
| short shorty = res.getShort(6); |
| assertEquals(3,shorty); |
| |
| res.next(); |
| shorty = res.getShort(6); |
| assertEquals(0,shorty); |
| |
| try { |
| res.getShort(500); |
| fail("Exception expected"); |
| } catch (SQLException e) { |
| //ok |
| } |
| } |
| |
| public void testGetShortString() throws SQLException { |
| short shorty = res.getShort("Sint"); |
| assertEquals(3,shorty); |
| |
| res.next(); |
| shorty = res.getShort("Sint"); |
| assertEquals(0,shorty); |
| |
| try { |
| res.getShort("bla"); |
| fail("Exception expected"); |
| } catch (SQLException e) { |
| //ok |
| } |
| } |
| |
| /** |
| * According to spec info.getStatement should return null but an exception |
| * is thrown: stale result set. |
| */ |
| public void testGetStatement() throws SQLException { |
| DatabaseMetaData meta = conn.getMetaData(); |
| ResultSet info = meta.getTypeInfo(); |
| Statement statement2 = info.getStatement(); |
| assertNull(statement2); |
| |
| statement2 = res.getStatement(); |
| assertEquals(st, statement2); |
| |
| // exception testing |
| try { |
| res.close(); |
| res.getStatement(); |
| fail("Exception expected"); |
| } catch (SQLException e) { |
| //ok |
| } |
| } |
| |
| public void testGetStringInt() throws SQLException { |
| List<String> texts = Arrays.asList("Test text message tiny", |
| "Test text", "Test text message medium", |
| "Test text message long"); |
| int i = 23; |
| |
| //text and exception testing |
| for (String t : texts) { |
| assertEquals(t, res.getString(i)); |
| i++; |
| } |
| |
| // the rest: everything should work with getString |
| |
| texts = Arrays.asList("1", "-1", "22", "2", "33", |
| "3","1","2","3.9","23.2","33.3","44", |
| "5", "test string", "1799-05-26", "12:35:45", "2007-10-09 14:28:02.0", |
| "1221-09-22 10:11:55","1","2","3","4"); |
| i= 1; |
| |
| for (String t : texts) { |
| assertEquals(t, res.getString(i)); |
| i++; |
| } |
| |
| //null testing |
| i = 1; |
| res.next(); |
| for (String t : values) { |
| assertNull(res.getString(i)); |
| i++; |
| } |
| |
| // exception testing |
| try { |
| res.getString(500); |
| fail("Exception expected"); |
| } catch (SQLException e) { |
| //ok |
| } |
| |
| } |
| |
| public void testGetStringString() throws SQLException { |
| ListIterator<String> colNameIt = colNames.listIterator(); |
| for (String t : values) { |
| assertEquals(t, res.getString(colNameIt.next())); |
| } |
| |
| res.next(); |
| for (String name: colNames) { |
| assertNull(res.getString(name)); |
| } |
| |
| try { |
| res.getString("bla"); |
| fail("Exception expected"); |
| } catch (SQLException e) { |
| //ok |
| } |
| } |
| |
| // getTime should return Time value for a TIMESTAMP type but returns null |
| public void testGetTimeInt() throws SQLException { |
| // values "12:35:45", "2007-10-09 14:28:02.0", "1221-09-22 10:11:55" |
| |
| Calendar cal = new GregorianCalendar(); |
| cal.clear(); |
| cal.set(Calendar.HOUR_OF_DAY, 12); |
| cal.set(Calendar.MINUTE, 35); |
| cal.set(Calendar.SECOND, 45); |
| cal.set(Calendar.MILLISECOND, 0); |
| // set with calendar value (correct init time: since epoch) |
| long millis = cal.getTime().getTime(); |
| Time t1 = new java.sql.Time(millis); |
| assertNotNull("t1", t1); |
| |
| |
| Calendar cal2 = new GregorianCalendar(); |
| cal2.set(Calendar.YEAR, 2007); |
| cal2.set(Calendar.MONTH, Calendar.OCTOBER); |
| cal2.set(Calendar.DATE, 9); |
| cal2.set(Calendar.HOUR_OF_DAY, 14); |
| cal2.set(Calendar.MINUTE, 28); |
| cal2.set(Calendar.SECOND, 02); |
| cal2.set(Calendar.MILLISECOND, 0); |
| |
| long millis2 = cal2.getTime().getTime(); |
| Time t2 = new java.sql.Time(millis2); |
| |
| int i = 16; |
| |
| Time resTime = res.getTime(i); |
| assertNotNull("Pos " + i + " null", resTime); |
| assertEquals(t1.toString(), resTime.toString()); |
| assertEquals(t1.getTime(), resTime.getTime()); |
| assertEquals(t1, resTime); |
| // Compatibility Test: TIMESTAMP value |
| i = 17; |
| |
| resTime = res.getTime(i); |
| assertNotNull("Pos " + i + " null", resTime); |
| assertEquals(t2.toString(), resTime.toString()); |
| assertEquals(t2.getTime(), resTime.getTime()); |
| assertEquals(t2, resTime); |
| |
| i = 16; |
| res.next(); |
| assertNull(res.getTime(i)); |
| |
| try { |
| res.getTime(500); |
| fail("Exception expected"); |
| } catch (SQLException e) { |
| // ok |
| } |
| } |
| |
| // getTime on TIMESTAMP value fails: returns null |
| public void testGetTimeIntCalendar() throws SQLException { |
| List<Time> times = new LinkedList<Time>(); |
| List<Calendar> cals = new LinkedList<Calendar>(); |
| // Arrays.asList("12:35:45", "2007-10-09 14:28:02.0", |
| // "1221-09-22 10:11:55"); |
| |
| Calendar cal1 = new GregorianCalendar(); |
| cal1.clear(); |
| cal1.set(Calendar.HOUR_OF_DAY, 12); |
| cal1.set(Calendar.MINUTE, 35); |
| cal1.set(Calendar.SECOND, 45); |
| cal1.set(Calendar.MILLISECOND, 0); |
| |
| long millis = cal1.getTime().getTime(); |
| Time t1 = new java.sql.Time(millis); |
| |
| Calendar cal2 = new GregorianCalendar(); |
| cal2.set(Calendar.YEAR, 2007); |
| cal2.set(Calendar.MONTH, Calendar.OCTOBER); |
| cal2.set(Calendar.DATE, 9); |
| cal2.set(Calendar.HOUR_OF_DAY, 14); |
| cal2.set(Calendar.MINUTE, 28); |
| cal2.set(Calendar.SECOND, 02); |
| cal2.set(Calendar.MILLISECOND, 0); |
| |
| long millis2 = cal2.getTime().getTime(); |
| Time t2 = new java.sql.Time(millis2); |
| |
| // TIME value |
| |
| int i = 16; |
| |
| Time timeRes = res.getTime(i,new GregorianCalendar()); |
| assertNotNull(timeRes); |
| assertEquals(t1.toString(), timeRes.toString()); |
| assertEquals(t1.getTime(), timeRes.getTime()); |
| assertEquals(t1, timeRes); |
| |
| // TIMESTAMP value |
| i = 17; |
| |
| timeRes = res.getTime(i,new GregorianCalendar()); |
| assertNotNull(timeRes); |
| assertEquals(t2.toString(), timeRes.toString()); |
| assertEquals(t2.getTime(), timeRes.getTime()); |
| assertEquals(t2, timeRes); |
| |
| res.next(); |
| for (Calendar c : cals) { |
| assertNull(res.getTime(16,c)); |
| i++; |
| } |
| |
| try { |
| res.getTime(500,Calendar.getInstance()); |
| fail("Exception expected"); |
| } catch (SQLException e) { |
| //ok |
| } |
| } |
| |
| // getTime should return a Time value for a TIMESTAMP type but returns null |
| public void testGetTimeString() throws SQLException { |
| List<Time> times = new LinkedList<Time>(); |
| |
| List<String> stringTimes = Arrays.asList("timeVal", "TS", "DT"); |
| Iterator<String> it = stringTimes.iterator(); |
| |
| // Arrays.asList("12:35:45", "2007-10-09 14:28:02.0", |
| // "1221-09-22 10:11:55"); |
| |
| Calendar cal = new GregorianCalendar(); |
| cal.clear(); |
| cal.set(Calendar.HOUR_OF_DAY, 12); |
| cal.set(Calendar.MINUTE, 35); |
| cal.set(Calendar.SECOND, 45); |
| cal.set(Calendar.MILLISECOND, 0); |
| |
| long millis = cal.getTime().getTime(); |
| Time t1 = new java.sql.Time(millis); |
| |
| String col = it.next(); |
| |
| Time timeRes = res.getTime(col); |
| assertNotNull(timeRes); |
| assertEquals(t1.toString(), timeRes.toString()); |
| assertEquals(t1.getTime(), timeRes.getTime()); |
| assertEquals(t1, timeRes); |
| |
| Calendar cal2 = new GregorianCalendar(); |
| cal2.set(Calendar.YEAR, 2007); |
| cal2.set(Calendar.MONTH, Calendar.OCTOBER); |
| cal2.set(Calendar.DATE, 9); |
| cal2.set(Calendar.HOUR_OF_DAY, 14); |
| cal2.set(Calendar.MINUTE, 28); |
| cal2.set(Calendar.SECOND, 02); |
| cal2.set(Calendar.MILLISECOND, 0); |
| |
| long millis2 = cal.getTime().getTime(); |
| Time t2 = new java.sql.Time(millis2); |
| |
| col = it.next(); |
| |
| timeRes = res.getTime(col); |
| assertNotNull(timeRes); |
| assertEquals(t2.toString(), timeRes.toString()); |
| assertEquals(t2.getTime(), timeRes.getTime()); |
| assertEquals(t2, timeRes); |
| |
| res.next(); |
| assertNull(res.getTime(col)); |
| |
| try { |
| res.getTime("bla"); |
| fail("Exception expected"); |
| } catch (SQLException e) { |
| //ok |
| } |
| } |
| |
| // getTime on TIMESTAMP value fails: returns null |
| public void testGetTimeStringCalendar() throws SQLException { |
| List<Time> times = new LinkedList<Time>(); |
| |
| List<String> stringTimes = Arrays.asList("timeVal", "TS", "DT"); |
| Iterator<String> it = stringTimes.iterator(); |
| List<Calendar> cals = new LinkedList<Calendar>(); |
| |
| // Arrays.asList("12:35:45", "2007-10-09 14:28:02.0", |
| // "1221-09-22 10:11:55"); |
| |
| Calendar cal1 = new GregorianCalendar(); |
| cal1.clear(); |
| cal1.set(Calendar.HOUR_OF_DAY, 12); |
| cal1.set(Calendar.MINUTE, 35); |
| cal1.set(Calendar.SECOND, 45); |
| cal1.set(Calendar.MILLISECOND, 0); |
| |
| long millis = cal1.getTime().getTime(); |
| Time t1 = new java.sql.Time(millis); |
| |
| Calendar cal2 = new GregorianCalendar(); |
| cal2.set(Calendar.YEAR, 2007); |
| cal2.set(Calendar.MONTH, Calendar.OCTOBER); |
| cal2.set(Calendar.DATE, 9); |
| cal2.set(Calendar.HOUR_OF_DAY, 14); |
| cal2.set(Calendar.MINUTE, 28); |
| cal2.set(Calendar.SECOND, 02); |
| cal2.set(Calendar.MILLISECOND, 0); |
| |
| long millis2 = cal2.getTime().getTime(); |
| Time t2 = new java.sql.Time(millis2); |
| |
| // TIME value |
| String col = it.next(); |
| |
| Time timeRes = res.getTime(col, new GregorianCalendar()); |
| assertNotNull(timeRes); |
| assertEquals(t1.toString(), timeRes.toString()); |
| assertEquals(t1.getTime(), timeRes.getTime()); |
| assertEquals(t1, res.getTime(col)); |
| //TIMESTAMP value |
| col = it.next(); |
| |
| timeRes = res.getTime(col, new GregorianCalendar()); |
| assertNotNull(timeRes); |
| assertEquals(t2.toString(), timeRes.toString()); |
| assertEquals(t2.getTime(), timeRes.getTime()); |
| assertEquals(t2, res.getTime(col)); |
| |
| res.next(); |
| assertNull(res.getTime(stringTimes.get(0), new GregorianCalendar())); |
| |
| try { |
| res.getTime("bla"); |
| fail("Exception expected"); |
| } catch (SQLException e) { |
| // ok |
| } |
| } |
| |
| public void testGetTimestampInt() throws SQLException { |
| List<Timestamp> times = new LinkedList<Timestamp>(); |
| |
| List<String> stringTimes = Arrays.asList("timeVal", "TS", "DT"); |
| Iterator<String> it = stringTimes.iterator(); |
| List<Calendar> cals = new LinkedList<Calendar>(); |
| |
| Calendar cal2 = new GregorianCalendar(); |
| cal2.set(Calendar.YEAR, 2007); |
| cal2.set(Calendar.MONTH, Calendar.OCTOBER); |
| cal2.set(Calendar.DATE, 9); |
| cal2.set(Calendar.HOUR_OF_DAY, 14); |
| cal2.set(Calendar.MINUTE, 28); |
| cal2.set(Calendar.SECOND, 02); |
| cal2.set(Calendar.MILLISECOND, 0); |
| |
| long millis = cal2.getTime().getTime(); |
| Timestamp t2 = new Timestamp(millis); |
| times.add(t2); |
| |
| Calendar cal3 = new GregorianCalendar(); |
| cal3.set(Calendar.YEAR, 1221); |
| cal3.set(Calendar.MONTH, Calendar.SEPTEMBER); |
| cal3.set(Calendar.DATE, 22); |
| cal3.set(Calendar.HOUR_OF_DAY, 10); |
| cal3.set(Calendar.MINUTE, 11); |
| cal3.set(Calendar.SECOND, 55); |
| cal3.set(Calendar.MILLISECOND, 0); |
| |
| millis = cal3.getTime().getTime(); |
| Timestamp t3 = new Timestamp(millis); |
| times.add(t3); |
| // TIMESTAMP value |
| int i = 17; |
| |
| Timestamp timeRes = res.getTimestamp(i); |
| assertEquals(t2.toString(), timeRes.toString()); |
| assertEquals(t2.getTime(), timeRes.getTime()); |
| assertEquals(t2, timeRes); |
| // DATE value |
| i = 18; |
| timeRes = res.getTimestamp(i); |
| assertEquals(t3.toString(), timeRes.toString()); |
| assertEquals(t3.getTime(), timeRes.getTime()); |
| assertEquals(t3, timeRes); |
| |
| res.next(); |
| assertNull(res.getTime(i)); |
| |
| try { |
| res.getTime(500); |
| fail("Exception expected"); |
| } catch (SQLException e) { |
| // ok |
| } |
| } |
| |
| public void testGetTimestampIntCalendar() throws SQLException { |
| List<Timestamp> times = new LinkedList<Timestamp>(); |
| |
| List<String> stringTimes = Arrays.asList("timeVal", "TS", "DT"); |
| Iterator<String> it = stringTimes.iterator(); |
| // List<Calendar> cals = new LinkedList<Calendar>(); |
| |
| Calendar cal2 = new GregorianCalendar(); |
| cal2.set(Calendar.YEAR, 2007); |
| cal2.set(Calendar.MONTH, Calendar.OCTOBER); |
| cal2.set(Calendar.DATE, 9); |
| cal2.set(Calendar.HOUR_OF_DAY, 14); |
| cal2.set(Calendar.MINUTE, 28); |
| cal2.set(Calendar.SECOND, 02); |
| cal2.set(Calendar.MILLISECOND, 0); |
| |
| long millis = cal2.getTime().getTime(); |
| Timestamp t2 = new Timestamp(millis); |
| times.add(t2); |
| // |
| Calendar cal3 = new GregorianCalendar(); |
| cal3.set(Calendar.YEAR, 1221); |
| cal3.set(Calendar.MONTH, Calendar.SEPTEMBER); |
| cal3.set(Calendar.DATE, 22); |
| cal3.set(Calendar.HOUR_OF_DAY, 10); |
| cal3.set(Calendar.MINUTE, 11); |
| cal3.set(Calendar.SECOND, 55); |
| cal3.set(Calendar.MILLISECOND, 0); |
| |
| millis = cal3.getTime().getTime(); |
| Timestamp t3 = new Timestamp(millis); |
| times.add(t3); |
| |
| // cals.add(cal1); |
| // cals.add(cal2); |
| // cals.add(cal3); |
| // |
| // ListIterator<Calendar> calIt = cals.listIterator(); |
| |
| int i = 17; |
| |
| Timestamp timeRes = res.getTimestamp(i,new GregorianCalendar()); |
| assertEquals(t2.toString(), timeRes.toString()); |
| assertEquals(t2, timeRes); |
| |
| i = 18; |
| |
| timeRes = res.getTimestamp(i,new GregorianCalendar()); |
| assertEquals(t3.toString(), timeRes.toString()); |
| assertEquals(t3, timeRes); |
| |
| res.next(); |
| assertNull(res.getTime(17,cal2)); |
| assertNull(res.getTime(18,cal3)); |
| |
| try { |
| res.getTime(500); |
| fail("Exception expected"); |
| } catch (SQLException e) { |
| // ok |
| } |
| } |
| |
| public void testGetTimestampString() throws SQLException { |
| List<Timestamp> times = new LinkedList<Timestamp>(); |
| |
| List<String> stringTimes = Arrays.asList( "TS", "DT"); |
| Iterator<String> it = stringTimes.iterator(); |
| // List<Calendar> cals = new LinkedList<Calendar>(); |
| |
| Calendar cal2 = new GregorianCalendar(); |
| cal2.set(Calendar.YEAR, 2007); |
| cal2.set(Calendar.MONTH, Calendar.OCTOBER); |
| cal2.set(Calendar.DATE, 9); |
| cal2.set(Calendar.HOUR_OF_DAY, 14); |
| cal2.set(Calendar.MINUTE, 28); |
| cal2.set(Calendar.SECOND, 02); |
| cal2.set(Calendar.MILLISECOND, 0); |
| |
| long millis = cal2.getTime().getTime(); |
| Timestamp t2 = new Timestamp(millis); |
| times.add(t2); |
| // |
| Calendar cal3 = new GregorianCalendar(); |
| cal3.set(Calendar.YEAR, 1221); |
| cal3.set(Calendar.MONTH, Calendar.SEPTEMBER); |
| cal3.set(Calendar.DATE, 22); |
| cal3.set(Calendar.HOUR_OF_DAY, 10); |
| cal3.set(Calendar.MINUTE, 11); |
| cal3.set(Calendar.SECOND, 55); |
| cal3.set(Calendar.MILLISECOND, 0); |
| |
| millis = cal3.getTime().getTime(); |
| Timestamp t3 = new Timestamp(millis); |
| times.add(t3); |
| |
| String col = it.next(); |
| |
| Timestamp timeRes = res.getTimestamp(col); |
| assertEquals(t2.toString(), timeRes.toString()); |
| assertEquals(t2.toString(), timeRes.toString()); |
| assertEquals(t2.getTime(), timeRes.getTime()); |
| assertEquals(t2, timeRes); |
| // DATE value |
| col = it.next(); |
| |
| timeRes = res.getTimestamp(col); |
| assertEquals(t3.toString(), timeRes.toString()); |
| assertEquals(t3.toString(), timeRes.toString()); |
| assertEquals(t3.getTime(), timeRes.getTime()); |
| assertEquals(t3, timeRes); |
| |
| res.next(); |
| assertNull(res.getTime(stringTimes.get(0))); |
| assertNull(res.getTime(stringTimes.get(1))); |
| |
| try { |
| res.getTime(500); |
| fail("Exception expected"); |
| } catch (SQLException e) { |
| // ok |
| } |
| } |
| |
| public void testGetTimestampStringCalendar() throws SQLException { |
| List<Timestamp> times = new LinkedList<Timestamp>(); |
| |
| List<String> stringTimes = Arrays.asList( "TS", "DT"); |
| Iterator<String> it = stringTimes.iterator(); |
| |
| Calendar cal2 = new GregorianCalendar(); |
| cal2.set(Calendar.YEAR, 2007); |
| cal2.set(Calendar.MONTH, Calendar.OCTOBER); |
| cal2.set(Calendar.DATE, 9); |
| cal2.set(Calendar.HOUR_OF_DAY, 14); |
| cal2.set(Calendar.MINUTE, 28); |
| cal2.set(Calendar.SECOND, 02); |
| cal2.set(Calendar.MILLISECOND, 0); |
| |
| long millis = cal2.getTime().getTime(); |
| Timestamp t2 = new Timestamp(millis); |
| times.add(t2); |
| // |
| Calendar cal3 = new GregorianCalendar(); |
| cal3.set(Calendar.YEAR, 1221); |
| cal3.set(Calendar.MONTH, Calendar.SEPTEMBER); |
| cal3.set(Calendar.DATE, 22); |
| cal3.set(Calendar.HOUR_OF_DAY, 10); |
| cal3.set(Calendar.MINUTE, 11); |
| cal3.set(Calendar.SECOND, 55); |
| cal3.set(Calendar.MILLISECOND, 0); |
| |
| millis = cal3.getTime().getTime(); |
| Timestamp t3 = new Timestamp(millis); |
| times.add(t3); |
| |
| Timestamp timeRes = res.getTimestamp(stringTimes.get(0),cal2); |
| assertEquals(t2.toString(), timeRes.toString()); |
| assertEquals(t2.getTime(), timeRes.getTime()); |
| assertEquals(t2, timeRes); |
| // DATE value |
| timeRes = res.getTimestamp(stringTimes.get(1),cal3); |
| assertEquals(t3.toString(), timeRes.toString()); |
| assertEquals(t3.getTime(), timeRes.getTime()); |
| assertEquals(t3, timeRes); |
| |
| // calIt = cals.listIterator(); |
| |
| res.next(); |
| assertNull(res.getTime(stringTimes.get(0),cal2)); |
| assertNull(res.getTime(stringTimes.get(1),cal3)); |
| |
| try { |
| res.getTime(500); |
| fail("Exception expected"); |
| } catch (SQLException e) { |
| // ok |
| } |
| } |
| |
| // res.close() does not wrap up |
| public void testGetType() throws SQLException { |
| assertEquals(ResultSet.TYPE_FORWARD_ONLY, res.getType()); |
| |
| try { |
| st.close(); |
| res.getType(); |
| fail("Exception not thrown."); |
| } catch (SQLException e) { |
| //ok |
| } |
| |
| } |
| |
| public void testGetURLInt() throws SQLException, MalformedURLException { |
| URL input = new URL("http://www.android.com"); |
| URL validURL = res.getURL(29); |
| assertEquals(input, validURL); |
| |
| try { |
| URL invalidURL = res.getURL(30); |
| assertNull(invalidURL); |
| } catch (SQLException e) { |
| // ok |
| } |
| |
| res.next(); |
| assertNull(res.getURL(29)); |
| assertNull(res.getURL(30)); |
| |
| try { |
| res.getURL(500); |
| fail("Exception expected"); |
| } catch (SQLException e) { |
| // ok |
| } |
| } |
| |
| public void testGetURLString() throws MalformedURLException, SQLException { |
| URL input = new URL("http://www.android.com"); |
| URL validURL = res.getURL("validURL"); |
| assertEquals(input, validURL); |
| |
| try { |
| URL invalidURL = res.getURL("invalidURL"); |
| assertNull(invalidURL); |
| } catch (SQLException e) { |
| // ok |
| } |
| |
| res.next(); |
| assertNull(res.getURL("validURL")); |
| assertNull(res.getURL("invalidURL")); |
| |
| try { |
| res.getURL("bla"); |
| fail("Exception expected"); |
| } catch (SQLException e) { |
| // ok |
| } |
| } |
| } |