You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@commons.apache.org by dg...@apache.org on 2003/10/24 05:43:08 UTC

cvs commit: jakarta-commons-sandbox/dbutils/src/test/org/apache/commons/dbutils/driver SqlNullCheckedResultSetTest.java SqlNullCheckedResultSetTestCase.java

dgraham     2003/10/23 20:43:08

  Modified:    dbutils/src/test/org/apache/commons/dbutils
                        BaseTestCase.java
  Added:       dbutils/src/test/org/apache/commons/dbutils/driver
                        SqlNullCheckedResultSetTest.java
  Removed:     dbutils/src/test/org/apache/commons/dbutils/driver
                        SqlNullCheckedResultSetTestCase.java
  Log:
  Renamed SqlNullCheckedResultSetTestCase to
  SqlNullCheckedResultSetTest to match other tests and
  cleaned up for new proxy system.
  
  Revision  Changes    Path
  1.6       +5 -3      jakarta-commons-sandbox/dbutils/src/test/org/apache/commons/dbutils/BaseTestCase.java
  
  Index: BaseTestCase.java
  ===================================================================
  RCS file: /home/cvs/jakarta-commons-sandbox/dbutils/src/test/org/apache/commons/dbutils/BaseTestCase.java,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- BaseTestCase.java	24 Oct 2003 02:26:59 -0000	1.5
  +++ BaseTestCase.java	24 Oct 2003 03:43:08 -0000	1.6
  @@ -68,6 +68,7 @@
   import junit.framework.TestCase;
   import junit.framework.TestSuite;
   
  +import org.apache.commons.dbutils.driver.SqlNullCheckedResultSetTest;
   import org.apache.commons.dbutils.driver.StringTrimmedResultSetTest;
   import org.apache.commons.dbutils.handlers.ArrayHandlerTest;
   import org.apache.commons.dbutils.handlers.ArrayListHandlerTest;
  @@ -145,6 +146,7 @@
           suite.addTestSuite(ScalarHandlerTest.class);
           
           suite.addTestSuite(StringTrimmedResultSetTest.class);
  +        suite.addTestSuite(SqlNullCheckedResultSetTest.class);
           
   		return suite;
   	}
  
  
  
  1.1                  jakarta-commons-sandbox/dbutils/src/test/org/apache/commons/dbutils/driver/SqlNullCheckedResultSetTest.java
  
  Index: SqlNullCheckedResultSetTest.java
  ===================================================================
  /*
   * $Header: /home/cvs/jakarta-commons-sandbox/dbutils/src/test/org/apache/commons/dbutils/driver/SqlNullCheckedResultSetTest.java,v 1.1 2003/10/24 03:43:08 dgraham Exp $
   * $Revision: 1.1 $
   * $Date: 2003/10/24 03:43:08 $
   * 
   * ====================================================================
   *
   * The Apache Software License, Version 1.1
   *
   * Copyright (c) 2003 The Apache Software Foundation.  All rights
   * reserved.
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions
   * are met:
   *
   * 1. Redistributions of source code must retain the above copyright
   *    notice, this list of conditions and the following disclaimer.
   *
   * 2. Redistributions in binary form must reproduce the above copyright
   *    notice, this list of conditions and the following disclaimer in
   *    the documentation and/or other materials provided with the
   *    distribution.
   *
   * 3. The end-user documentation included with the redistribution, if
   *    any, must include the following acknowledgement:
   *       "This product includes software developed by the
   *        Apache Software Foundation (http://www.apache.org/)."
   *    Alternately, this acknowledgement may appear in the software itself,
   *    if and wherever such third-party acknowledgements normally appear.
   *
   * 4. The names "The Jakarta Project", "Commons", and "Apache Software
   *    Foundation" must not be used to endorse or promote products derived
   *    from this software without prior written permission. For written
   *    permission, please contact apache@apache.org.
   *
   * 5. Products derived from this software may not be called "Apache"
   *    nor may "Apache" appear in their names without prior written
   *    permission of the Apache Software Foundation.
   *
   * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
   * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
   * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
   * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
   * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
   * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
   * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
   * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
   * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
   * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
   * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
   * SUCH DAMAGE.
   * ====================================================================
   *
   * This software consists of voluntary contributions made by many
   * individuals on behalf of the Apache Software Foundation.  For more
   * information on the Apache Software Foundation, please see
   * <http://www.apache.org/>.
   *
   */
  
  package org.apache.commons.dbutils.driver;
  
  import java.io.ByteArrayInputStream;
  import java.io.CharArrayReader;
  import java.io.InputStream;
  import java.io.OutputStream;
  import java.io.Reader;
  import java.io.Writer;
  import java.lang.reflect.InvocationHandler;
  import java.lang.reflect.Method;
  import java.math.BigDecimal;
  import java.sql.Blob;
  import java.sql.Clob;
  import java.sql.Ref;
  import java.sql.ResultSet;
  import java.sql.SQLException;
  import java.sql.Time;
  import java.sql.Timestamp;
  import java.util.Calendar;
  import java.util.Map;
  
  import org.apache.commons.dbutils.BaseTestCase;
  import org.apache.commons.dbutils.ProxyFactory;
  
  /**
   * Test cases for <code>SqlNullCheckedResultSet</code> class.
   *
   * @author  <a href="stevencaswell@apache.org">Steven Caswell</a>
   * @author David Graham
   * @version $Id: SqlNullCheckedResultSetTest.java,v 1.1 2003/10/24 03:43:08 dgraham Exp $
   */
  public class SqlNullCheckedResultSetTest extends BaseTestCase {
  
      private ResultSet rs = null;
  
      private SqlNullCheckedResultSet rs2 = null;
  
      /**
       * Constructs a new instance of
       * <code>SqlNullCheckedResultSetTestCase</code>
       * with the specified name.
       *
       * @param name the test case name
       */
      public SqlNullCheckedResultSetTest(String name) {
          super(name);
      }
  
      /**
       * Sets up instance variables required by this test case.
       */
      public void setUp() throws Exception {
          super.setUp();
  
          rs2 =
              new SqlNullCheckedResultSet(
                  ProxyFactory.instance().createResultSet(
                      new SqlNullUncheckedMockResultSet()));
  
          rs = ProxyFactory.instance().createResultSet(rs2);
      }
  
      /**
       * Tests the getAsciiStream implementation.
       */
      public void testGetAsciiStream() throws SQLException {
  
          assertNull(rs.getAsciiStream(1));
          assertTrue(rs.wasNull());
          assertNull(rs.getAsciiStream("column"));
          assertTrue(rs.wasNull());
          // Set what gets returned to something other than the default
          InputStream stream = new ByteArrayInputStream(new byte[0]);
          rs2.setNullAsciiStream(stream);
          assertNotNull(rs.getAsciiStream(1));
          assertEquals(stream, rs.getAsciiStream(1));
          assertNotNull(rs.getAsciiStream("column"));
          assertEquals(stream, rs.getAsciiStream("column"));
  
      }
  
      /**
       * Tests the getBigDecimal implementation.
       */
      public void testGetBigDecimal() throws SQLException {
  
          assertNull(rs.getBigDecimal(1));
          assertTrue(rs.wasNull());
          assertNull(rs.getBigDecimal("column"));
          assertTrue(rs.wasNull());
          // Set what gets returned to something other than the default
          BigDecimal bd = new BigDecimal(5.0);
          rs2.setNullBigDecimal(bd);
          assertNotNull(rs.getBigDecimal(1));
          assertEquals(bd, rs.getBigDecimal(1));
          assertNotNull(rs.getBigDecimal("column"));
          assertEquals(bd, rs.getBigDecimal("column"));
  
      }
  
      /**
       * Tests the getBinaryStream implementation.
       */
      public void testGetBinaryStream() throws SQLException {
  
          assertNull(rs.getBinaryStream(1));
          assertTrue(rs.wasNull());
          assertNull(rs.getBinaryStream("column"));
          assertTrue(rs.wasNull());
          // Set what gets returned to something other than the default
          InputStream stream = new ByteArrayInputStream(new byte[0]);
          rs2.setNullBinaryStream(stream);
          assertNotNull(rs.getBinaryStream(1));
          assertEquals(stream, rs.getBinaryStream(1));
          assertNotNull(rs.getBinaryStream("column"));
          assertEquals(stream, rs.getBinaryStream("column"));
  
      }
  
      /**
       * Tests the getBlob implementation.
       */
      public void testGetBlob() throws SQLException {
  
          assertNull(rs.getBlob(1));
          assertTrue(rs.wasNull());
          assertNull(rs.getBlob("column"));
          assertTrue(rs.wasNull());
          // Set what gets returned to something other than the default
          Blob blob = new SqlNullCheckedResultSetMockBlob();
          rs2.setNullBlob(blob);
          assertNotNull(rs.getBlob(1));
          assertEquals(blob, rs.getBlob(1));
          assertNotNull(rs.getBlob("column"));
          assertEquals(blob, rs.getBlob("column"));
  
      }
  
      /**
       * Tests the getBoolean implementation.
       */
      public void testGetBoolean() throws SQLException {
  
          assertEquals(false, rs.getBoolean(1));
          assertTrue(rs.wasNull());
          assertEquals(false, rs.getBoolean("column"));
          assertTrue(rs.wasNull());
          // Set what gets returned to something other than the default
          rs2.setNullBoolean(true);
          assertEquals(true, rs.getBoolean(1));
          assertEquals(true, rs.getBoolean("column"));
  
      }
  
      /**
       * Tests the getByte implementation.
       */
      public void testGetByte() throws SQLException {
  
          assertEquals((byte) 0, rs.getByte(1));
          assertTrue(rs.wasNull());
          assertEquals((byte) 0, rs.getByte("column"));
          assertTrue(rs.wasNull());
          // Set what gets returned to something other than the default
          byte b = (byte) 10;
          rs2.setNullByte(b);
          assertEquals(b, rs.getByte(1));
          assertEquals(b, rs.getByte("column"));
  
      }
  
      /**
       * Tests the getByte implementation.
       */
      public void testGetBytes() throws SQLException {
  
          assertNull(rs.getBytes(1));
          assertTrue(rs.wasNull());
          assertNull(rs.getBytes("column"));
          assertTrue(rs.wasNull());
          // Set what gets returned to something other than the default
          byte[] b = new byte[5];
          for (int i = 0; i < 5; i++) {
              b[0] = (byte) i;
          }
          rs2.setNullBytes(b);
          assertNotNull(rs.getBytes(1));
          assertEquals(b, rs.getBytes(1));
          assertNotNull(rs.getBytes("column"));
          assertEquals(b, rs.getBytes("column"));
  
      }
  
      /**
       * Tests the getCharacterStream implementation.
       */
      public void testGetCharacterStream() throws SQLException {
  
          assertNull(rs.getCharacterStream(1));
          assertTrue(rs.wasNull());
          assertNull(rs.getCharacterStream("column"));
          assertTrue(rs.wasNull());
          // Set what gets returned to something other than the default
          Reader reader = new CharArrayReader("this is a string".toCharArray());
          rs2.setNullCharacterStream(reader);
          assertNotNull(rs.getCharacterStream(1));
          assertEquals(reader, rs.getCharacterStream(1));
          assertNotNull(rs.getCharacterStream("column"));
          assertEquals(reader, rs.getCharacterStream("column"));
  
      }
  
      /**
       * Tests the getClob implementation.
       */
      public void testGetClob() throws SQLException {
  
          assertNull(rs.getClob(1));
          assertTrue(rs.wasNull());
          assertNull(rs.getClob("column"));
          assertTrue(rs.wasNull());
          // Set what gets returned to something other than the default
          Clob clob = new SqlNullCheckedResultSetMockClob();
          rs2.setNullClob(clob);
          assertNotNull(rs.getClob(1));
          assertEquals(clob, rs.getClob(1));
          assertNotNull(rs.getClob("column"));
          assertEquals(clob, rs.getClob("column"));
  
      }
  
      /**
       * Tests the getDate implementation.
       */
      public void testGetDate() throws SQLException {
  
          assertNull(rs.getDate(1));
          assertTrue(rs.wasNull());
          assertNull(rs.getDate("column"));
          assertTrue(rs.wasNull());
          assertNull(rs.getDate(1, Calendar.getInstance()));
          assertTrue(rs.wasNull());
          assertNull(rs.getDate("column", Calendar.getInstance()));
          assertTrue(rs.wasNull());
          // Set what gets returned to something other than the default
          java.sql.Date date = new java.sql.Date(new java.util.Date().getTime());
          rs2.setNullDate(date);
          assertNotNull(rs.getDate(1));
          assertEquals(date, rs.getDate(1));
          assertNotNull(rs.getDate("column"));
          assertEquals(date, rs.getDate("column"));
          assertNotNull(rs.getDate(1, Calendar.getInstance()));
          assertEquals(date, rs.getDate(1, Calendar.getInstance()));
          assertNotNull(rs.getDate("column", Calendar.getInstance()));
          assertEquals(date, rs.getDate("column", Calendar.getInstance()));
  
      }
  
      /**
       * Tests the getDouble implementation.
       */
      public void testGetDouble() throws SQLException {
  
          assertEquals(0.0, rs.getDouble(1), 0.0);
          assertTrue(rs.wasNull());
          assertEquals(0.0, rs.getDouble("column"), 0.0);
          assertTrue(rs.wasNull());
          // Set what gets returned to something other than the default
          double d = 10.0;
          rs2.setNullDouble(d);
          assertEquals(d, rs.getDouble(1), 0.0);
          assertEquals(d, rs.getDouble("column"), 0.0);
  
      }
  
      /**
       * Tests the getFloat implementation.
       */
      public void testGetFloat() throws SQLException {
  
          assertEquals((float) 0, rs.getFloat(1), 0.0);
          assertTrue(rs.wasNull());
          assertEquals((float) 0, rs.getFloat("column"), 0.0);
          assertTrue(rs.wasNull());
          // Set what gets returned to something other than the default
          float f = (float) 10.0;
          rs2.setNullFloat(f);
          assertEquals(f, rs.getFloat(1), 0.0);
          assertEquals(f, rs.getFloat("column"), 0.0);
  
      }
  
      /**
       * Tests the getInt implementation.
       */
      public void testGetInt() throws SQLException {
  
          assertEquals(0, rs.getInt(1));
          assertTrue(rs.wasNull());
          assertEquals(0, rs.getInt("column"));
          assertTrue(rs.wasNull());
          // Set what gets returned to something other than the default
          int i = 10;
          rs2.setNullInt(i);
          assertEquals(i, rs.getInt(1));
          assertEquals(i, rs.getInt("column"));
  
      }
  
      /**
       * Tests the getLong implementation.
       */
      public void testGetLong() throws SQLException {
  
          assertEquals((long) 0, rs.getLong(1));
          assertTrue(rs.wasNull());
          assertEquals((long) 0, rs.getLong("column"));
          assertTrue(rs.wasNull());
          // Set what gets returned to something other than the default
          long l = (long) 10;
          rs2.setNullLong(l);
          assertEquals(l, rs.getLong(1));
          assertEquals(l, rs.getLong("column"));
  
      }
  
      /**
       * Tests the getObject implementation.
       */
      public void testGetObject() throws SQLException {
  
          assertNull(rs.getObject(1));
          assertTrue(rs.wasNull());
          assertNull(rs.getObject("column"));
          assertTrue(rs.wasNull());
          assertNull(rs.getObject(1, (Map) null));
          assertTrue(rs.wasNull());
          assertNull(rs.getObject("column", (Map) null));
          assertTrue(rs.wasNull());
          // Set what gets returned to something other than the default
          Object o = new Object();
          rs2.setNullObject(o);
          assertNotNull(rs.getObject(1));
          assertEquals(o, rs.getObject(1));
          assertNotNull(rs.getObject("column"));
          assertEquals(o, rs.getObject("column"));
          assertNotNull(rs.getObject(1, (Map) null));
          assertEquals(o, rs.getObject(1, (Map) null));
          assertNotNull(rs.getObject("column", (Map) null));
          assertEquals(o, rs.getObject("column", (Map) null));
  
      }
  
      /**
       * Tests the getRef implementation.
       */
      public void testGetRef() throws SQLException {
  
          assertNull(rs.getRef(1));
          assertTrue(rs.wasNull());
          assertNull(rs.getRef("column"));
          assertTrue(rs.wasNull());
          // Set what gets returned to something other than the default
          Ref ref = new SqlNullCheckedResultSetMockRef();
          rs2.setNullRef(ref);
          assertNotNull(rs.getRef(1));
          assertEquals(ref, rs.getRef(1));
          assertNotNull(rs.getRef("column"));
          assertEquals(ref, rs.getRef("column"));
  
      }
  
      /**
       * Tests the getShort implementation.
       */
      public void testGetShort() throws SQLException {
  
          assertEquals((short) 0, rs.getShort(1));
          assertTrue(rs.wasNull());
          assertEquals((short) 0, rs.getShort("column"));
          assertTrue(rs.wasNull());
          // Set what gets returned to something other than the default
          short s = (short) 10;
          rs2.setNullShort(s);
          assertEquals(s, rs.getShort(1));
          assertEquals(s, rs.getShort("column"));
  
      }
  
      /**
       * Tests the getString implementation.
       */
      public void testGetString() throws SQLException {
  
          assertEquals(null, rs.getString(1));
          assertTrue(rs.wasNull());
          assertEquals(null, rs.getString("column"));
          assertTrue(rs.wasNull());
          // Set what gets returned to something other than the default
          String s = "hello, world";
          rs2.setNullString(s);
          assertEquals(s, rs.getString(1));
          assertEquals(s, rs.getString("column"));
  
      }
  
      /**
       * Tests the getTime implementation.
       */
      public void testGetTime() throws SQLException {
  
          assertNull(rs.getTime(1));
          assertTrue(rs.wasNull());
          assertNull(rs.getTime("column"));
          assertTrue(rs.wasNull());
          assertNull(rs.getTime(1, Calendar.getInstance()));
          assertTrue(rs.wasNull());
          assertNull(rs.getTime("column", Calendar.getInstance()));
          assertTrue(rs.wasNull());
          // Set what gets returned to something other than the default
          Time time = new Time(new java.util.Date().getTime());
          rs2.setNullTime(time);
          assertNotNull(rs.getTime(1));
          assertEquals(time, rs.getTime(1));
          assertNotNull(rs.getTime("column"));
          assertEquals(time, rs.getTime("column"));
          assertNotNull(rs.getTime(1, Calendar.getInstance()));
          assertEquals(time, rs.getTime(1, Calendar.getInstance()));
          assertNotNull(rs.getTime("column", Calendar.getInstance()));
          assertEquals(time, rs.getTime("column", Calendar.getInstance()));
  
      }
  
      /**
       * Tests the getTimestamp implementation.
       */
      public void testGetTimestamp() throws SQLException {
  
          assertNull(rs.getTimestamp(1));
          assertTrue(rs.wasNull());
          assertNull(rs.getTimestamp("column"));
          assertTrue(rs.wasNull());
          assertNull(rs.getTimestamp(1, Calendar.getInstance()));
          assertTrue(rs.wasNull());
          assertNull(rs.getTimestamp("column", Calendar.getInstance()));
          assertTrue(rs.wasNull());
          // Set what gets returned to something other than the default
          Timestamp ts = new Timestamp(new java.util.Date().getTime());
          rs2.setNullTimestamp(ts);
          assertNotNull(rs.getTimestamp(1));
          assertEquals(ts, rs.getTimestamp(1));
          assertNotNull(rs.getTimestamp("column"));
          assertEquals(ts, rs.getTimestamp("column"));
          assertNotNull(rs.getTimestamp(1, Calendar.getInstance()));
          assertEquals(ts, rs.getTimestamp(1, Calendar.getInstance()));
          assertNotNull(rs.getTimestamp("column", Calendar.getInstance()));
          assertEquals(ts, rs.getTimestamp("column", Calendar.getInstance()));
  
      }
  
      /**
       * Tests the getUnicodeStream implementation.
       */
      public void testGetUnicodeStream() throws SQLException {
  
          assertNull(rs.getUnicodeStream(1));
          assertTrue(rs.wasNull());
          assertNull(rs.getUnicodeStream("column"));
          assertTrue(rs.wasNull());
          // Set what gets returned to something other than the default
          InputStream stream = new ByteArrayInputStream(new byte[0]);
          rs2.setNullUnicodeStream(stream);
          assertNotNull(rs.getUnicodeStream(1));
          assertEquals(stream, rs.getUnicodeStream(1));
          assertNotNull(rs.getUnicodeStream("column"));
          assertEquals(stream, rs.getUnicodeStream("column"));
  
      }
  
      /**
       * Tests the setNullAsciiStream implementation.
       */
      public void testSetNullAsciiStream() throws SQLException {
  
          assertNull(rs2.getNullAsciiStream());
          // Set what gets returned to something other than the default
          InputStream stream = new ByteArrayInputStream(new byte[0]);
          rs2.setNullAsciiStream(stream);
          assertNotNull(rs.getAsciiStream(1));
          assertEquals(stream, rs.getAsciiStream(1));
          assertNotNull(rs.getAsciiStream("column"));
          assertEquals(stream, rs.getAsciiStream("column"));
  
      }
  
      /**
       * Tests the setNullBigDecimal implementation.
       */
      public void testSetNullBigDecimal() throws SQLException {
  
          assertNull(rs2.getNullBigDecimal());
          // Set what gets returned to something other than the default
          BigDecimal bd = new BigDecimal(5.0);
          rs2.setNullBigDecimal(bd);
          assertNotNull(rs.getBigDecimal(1));
          assertEquals(bd, rs.getBigDecimal(1));
          assertNotNull(rs.getBigDecimal("column"));
          assertEquals(bd, rs.getBigDecimal("column"));
  
      }
  
      /**
       * Tests the setNullBinaryStream implementation.
       */
      public void testSetNullBinaryStream() throws SQLException {
  
          assertNull(rs2.getNullBinaryStream());
          // Set what gets returned to something other than the default
          InputStream stream = new ByteArrayInputStream(new byte[0]);
          rs2.setNullBinaryStream(stream);
          assertNotNull(rs.getBinaryStream(1));
          assertEquals(stream, rs.getBinaryStream(1));
          assertNotNull(rs.getBinaryStream("column"));
          assertEquals(stream, rs.getBinaryStream("column"));
  
      }
  
      /**
       * Tests the setNullBlob implementation.
       */
      public void testSetNullBlob() throws SQLException {
  
          assertNull(rs2.getNullBlob());
          // Set what gets returned to something other than the default
          Blob blob = new SqlNullCheckedResultSetMockBlob();
          rs2.setNullBlob(blob);
          assertNotNull(rs.getBlob(1));
          assertEquals(blob, rs.getBlob(1));
          assertNotNull(rs.getBlob("column"));
          assertEquals(blob, rs.getBlob("column"));
  
      }
  
      /**
       * Tests the setNullBoolean implementation.
       */
      public void testSetNullBoolean() throws SQLException {
  
          assertEquals(false, rs2.getNullBoolean());
          // Set what gets returned to something other than the default
          rs2.setNullBoolean(true);
          assertEquals(true, rs.getBoolean(1));
          assertEquals(true, rs.getBoolean("column"));
  
      }
  
      /**
       * Tests the setNullByte implementation.
       */
      public void testSetNullByte() throws SQLException {
  
          assertEquals((byte) 0, rs2.getNullByte());
          // Set what gets returned to something other than the default
          byte b = (byte) 10;
          rs2.setNullByte(b);
          assertEquals(b, rs.getByte(1));
          assertEquals(b, rs.getByte("column"));
  
      }
  
      /**
       * Tests the setNullByte implementation.
       */
      public void testSetNullBytes() throws SQLException {
  
          assertNull(rs2.getNullBytes());
          // Set what gets returned to something other than the default
          byte[] b = new byte[5];
          for (int i = 0; i < 5; i++) {
              b[0] = (byte) i;
          }
          rs2.setNullBytes(b);
          assertNotNull(rs.getBytes(1));
          assertEquals(b, rs.getBytes(1));
          assertNotNull(rs.getBytes("column"));
          assertEquals(b, rs.getBytes("column"));
  
      }
  
      /**
       * Tests the setNullCharacterStream implementation.
       */
      public void testSetNullCharacterStream() throws SQLException {
  
          assertNull(rs2.getNullCharacterStream());
          // Set what gets returned to something other than the default
          Reader reader = new CharArrayReader("this is a string".toCharArray());
          rs2.setNullCharacterStream(reader);
          assertNotNull(rs.getCharacterStream(1));
          assertEquals(reader, rs.getCharacterStream(1));
          assertNotNull(rs.getCharacterStream("column"));
          assertEquals(reader, rs.getCharacterStream("column"));
  
      }
  
      /**
       * Tests the setNullClob implementation.
       */
      public void testSetNullClob() throws SQLException {
  
          assertNull(rs2.getNullClob());
          // Set what gets returned to something other than the default
          Clob clob = new SqlNullCheckedResultSetMockClob();
          rs2.setNullClob(clob);
          assertNotNull(rs.getClob(1));
          assertEquals(clob, rs.getClob(1));
          assertNotNull(rs.getClob("column"));
          assertEquals(clob, rs.getClob("column"));
  
      }
  
      /**
       * Tests the setNullDate implementation.
       */
      public void testSetNullDate() throws SQLException {
  
          assertNull(rs2.getNullDate());
          // Set what gets returned to something other than the default
          java.sql.Date date = new java.sql.Date(new java.util.Date().getTime());
          rs2.setNullDate(date);
          assertNotNull(rs.getDate(1));
          assertEquals(date, rs.getDate(1));
          assertNotNull(rs.getDate("column"));
          assertEquals(date, rs.getDate("column"));
          assertNotNull(rs.getDate(1, Calendar.getInstance()));
          assertEquals(date, rs.getDate(1, Calendar.getInstance()));
          assertNotNull(rs.getDate("column", Calendar.getInstance()));
          assertEquals(date, rs.getDate("column", Calendar.getInstance()));
  
      }
  
      /**
       * Tests the setNullDouble implementation.
       */
      public void testSetNullDouble() throws SQLException {
  
          assertEquals((double) 0.0, rs2.getNullDouble(), 0.0);
          // Set what gets returned to something other than the default
          double d = (double) 10.0;
          rs2.setNullDouble(d);
          assertEquals(d, rs.getDouble(1), 0.0);
          assertEquals(d, rs.getDouble("column"), 0.0);
  
      }
  
      /**
       * Tests the setNullFloat implementation.
       */
      public void testSetNullFloat() throws SQLException {
  
          assertEquals((float) 0.0, rs2.getNullFloat(), 0.0);
          // Set what gets returned to something other than the default
          float f = (float) 10.0;
          rs2.setNullFloat(f);
          assertEquals(f, rs.getFloat(1), 0.0);
          assertEquals(f, rs.getFloat("column"), 0.0);
  
      }
  
      /**
       * Tests the setNullInt implementation.
       */
      public void testSetNullInt() throws SQLException {
  
          assertEquals(0, rs2.getNullInt());
          assertEquals((int) 0, rs.getInt(1));
          assertTrue(rs.wasNull());
          assertEquals((int) 0, rs.getInt("column"));
          assertTrue(rs.wasNull());
          // Set what gets returned to something other than the default
          int i = (int) 10;
          rs2.setNullInt(i);
          assertEquals(i, rs.getInt(1));
          assertEquals(i, rs.getInt("column"));
  
      }
  
      /**
       * Tests the setNullLong implementation.
       */
      public void testSetNullLong() throws SQLException {
  
          assertEquals((long) 0, rs2.getNullLong());
          // Set what gets returned to something other than the default
          long l = (long) 10;
          rs2.setNullLong(l);
          assertEquals(l, rs.getLong(1));
          assertEquals(l, rs.getLong("column"));
  
      }
  
      /**
       * Tests the setNullObject implementation.
       */
      public void testSetNullObject() throws SQLException {
  
          assertNull(rs2.getNullObject());
          // Set what gets returned to something other than the default
          Object o = new Object();
          rs2.setNullObject(o);
          assertNotNull(rs.getObject(1));
          assertEquals(o, rs.getObject(1));
          assertNotNull(rs.getObject("column"));
          assertEquals(o, rs.getObject("column"));
          assertNotNull(rs.getObject(1, (Map) null));
          assertEquals(o, rs.getObject(1, (Map) null));
          assertNotNull(rs.getObject("column", (Map) null));
          assertEquals(o, rs.getObject("column", (Map) null));
  
      }
  
      /**
       * Tests the setNullShort implementation.
       */
      public void testSetNullShort() throws SQLException {
  
          assertEquals((short) 0, rs2.getNullShort());
          // Set what gets returned to something other than the default
          short s = (short) 10;
          rs2.setNullShort(s);
          assertEquals(s, rs.getShort(1));
          assertEquals(s, rs.getShort("column"));
  
      }
  
      /**
       * Tests the setNullString implementation.
       */
      public void testSetNullString() throws SQLException {
  
          assertEquals(null, rs2.getNullString());
          // Set what gets returned to something other than the default
          String s = "hello, world";
          rs2.setNullString(s);
          assertEquals(s, rs.getString(1));
          assertEquals(s, rs.getString("column"));
  
      }
  
      /**
       * Tests the setNullRef implementation.
       */
      public void testSetNullRef() throws SQLException {
  
          assertNull(rs2.getNullRef());
          // Set what gets returned to something other than the default
          Ref ref = new SqlNullCheckedResultSetMockRef();
          rs2.setNullRef(ref);
          assertNotNull(rs.getRef(1));
          assertEquals(ref, rs.getRef(1));
          assertNotNull(rs.getRef("column"));
          assertEquals(ref, rs.getRef("column"));
  
      }
  
      /**
       * Tests the setNullTime implementation.
       */
      public void testSetNullTime() throws SQLException {
  
          assertEquals(null, rs2.getNullTime());
          // Set what gets returned to something other than the default
          Time time = new Time(new java.util.Date().getTime());
          rs2.setNullTime(time);
          assertNotNull(rs.getTime(1));
          assertEquals(time, rs.getTime(1));
          assertNotNull(rs.getTime("column"));
          assertEquals(time, rs.getTime("column"));
          assertNotNull(rs.getTime(1, Calendar.getInstance()));
          assertEquals(time, rs.getTime(1, Calendar.getInstance()));
          assertNotNull(rs.getTime("column", Calendar.getInstance()));
          assertEquals(time, rs.getTime("column", Calendar.getInstance()));
  
      }
  
      /**
       * Tests the setNullTimestamp implementation.
       */
      public void testSetNullTimestamp() throws SQLException {
  
          assertEquals(null, rs2.getNullTimestamp());
          // Set what gets returned to something other than the default
          Timestamp ts = new Timestamp(new java.util.Date().getTime());
          rs2.setNullTimestamp(ts);
          assertNotNull(rs.getTimestamp(1));
          assertEquals(ts, rs.getTimestamp(1));
          assertNotNull(rs.getTimestamp("column"));
          assertEquals(ts, rs.getTimestamp("column"));
          assertNotNull(rs.getTimestamp(1, Calendar.getInstance()));
          assertEquals(ts, rs.getTimestamp(1, Calendar.getInstance()));
          assertNotNull(rs.getTimestamp("column", Calendar.getInstance()));
          assertEquals(ts, rs.getTimestamp("column", Calendar.getInstance()));
  
      }
  
      /**
       * Tests the setNullUnicodeStream implementation.
       */
      public void testSetNullUnicodeStream() throws SQLException {
  
          assertEquals(null, rs2.getNullUnicodeStream());
          // Set what gets returned to something other than the default
          InputStream stream = new ByteArrayInputStream(new byte[0]);
          rs2.setNullUnicodeStream(stream);
          assertNotNull(rs.getUnicodeStream(1));
          assertEquals(stream, rs.getUnicodeStream(1));
          assertNotNull(rs.getUnicodeStream("column"));
          assertEquals(stream, rs.getUnicodeStream("column"));
  
      }
  
  }
  
  class SqlNullUncheckedMockResultSet implements InvocationHandler {
  
      /**
       * Always return false for booleans, 0 for numerics, and null for Objects.
       * @see java.lang.reflect.InvocationHandler#invoke(java.lang.Object, java.lang.reflect.Method, java.lang.Object[])
       */
      public Object invoke(Object proxy, Method method, Object[] args)
          throws Throwable {
  
          Class returnType = method.getReturnType();
  
          if (method.getName().equals("wasNull")) {
              return Boolean.TRUE;
  
          } else if (returnType.equals(Boolean.TYPE)) {
              return Boolean.FALSE;
  
          } else if (returnType.equals(Integer.TYPE)) {
              return new Integer(0);
  
          } else if (returnType.equals(Short.TYPE)) {
              return new Short((short) 0);
  
          } else if (returnType.equals(Double.TYPE)) {
              return new Double(0);
  
          } else if (returnType.equals(Long.TYPE)) {
              return new Long(0);
  
          } else if (returnType.equals(Byte.TYPE)) {
              return new Byte((byte) 0);
  
          } else if (returnType.equals(Float.TYPE)) {
              return new Float(0);
  
          } else {
              return null;
          }
      }
  }
  
  class SqlNullCheckedResultSetMockBlob implements Blob {
  
      public InputStream getBinaryStream() throws SQLException {
          return new ByteArrayInputStream(new byte[0]);
      }
  
      public byte[] getBytes(long param, int param1) throws SQLException {
          return new byte[0];
      }
  
      public long length() throws SQLException {
          return 0;
      }
  
      public long position(byte[] values, long param) throws SQLException {
          return 0;
      }
  
      public long position(Blob blob, long param) throws SQLException {
          return 0;
      }
  
      public void truncate(long len) throws SQLException {
  
      }
  
      public int setBytes(long pos, byte[] bytes) throws SQLException {
          return 0;
      }
  
      public int setBytes(long pos, byte[] bytes, int offset, int len)
          throws SQLException {
          return 0;
      }
  
      public OutputStream setBinaryStream(long pos) throws SQLException {
          return null;
      }
  
  }
  
  class SqlNullCheckedResultSetMockClob implements Clob {
  
      public InputStream getAsciiStream() throws SQLException {
          return null;
      }
  
      public Reader getCharacterStream() throws SQLException {
          return null;
      }
  
      public String getSubString(long param, int param1) throws SQLException {
          return "";
      }
  
      public long length() throws SQLException {
          return 0;
      }
  
      public long position(Clob clob, long param) throws SQLException {
          return 0;
      }
  
      public long position(String str, long param) throws SQLException {
          return 0;
      }
  
      public void truncate(long len) throws SQLException {
  
      }
  
      public OutputStream setAsciiStream(long pos) throws SQLException {
          return null;
      }
  
      public Writer setCharacterStream(long pos) throws SQLException {
          return null;
      }
  
      public int setString(long pos, String str) throws SQLException {
          return 0;
      }
  
      public int setString(long pos, String str, int offset, int len)
          throws SQLException {
          return 0;
      }
  
  }
  
  class SqlNullCheckedResultSetMockRef implements Ref {
  
      public String getBaseTypeName() throws SQLException {
          return "";
      }
  
      public Object getObject() throws SQLException {
          return null;
      }
  
      public void setObject(Object value) throws SQLException {
  
      }
  
      public Object getObject(Map map) throws SQLException {
          return null;
      }
  
  }
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: commons-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: commons-dev-help@jakarta.apache.org