Added test for newly implemented updateable result sets

This commit is contained in:
Dave Cramer 2002-06-13 14:06:11 +00:00
parent 603c46d8ce
commit 5598cbf641
2 changed files with 142 additions and 3 deletions

View File

@ -16,7 +16,8 @@ public class JDBC2Tests extends TestSuite
*/
public static String getURL()
{
return System.getProperty("database");
//return System.getProperty("database");
return "test";
}
/*
@ -24,7 +25,8 @@ public class JDBC2Tests extends TestSuite
*/
public static String getUser()
{
return System.getProperty("username");
return "davec";
//return System.getProperty("username");
}
/*
@ -32,7 +34,8 @@ public class JDBC2Tests extends TestSuite
*/
public static String getPassword()
{
return System.getProperty("password");
return null;
//return System.getProperty("password");
}
/*
@ -226,6 +229,7 @@ public class JDBC2Tests extends TestSuite
// Fastpath/LargeObject
suite.addTestSuite(BlobTest.class);
suite.addTestSuite( UpdateableResultTest.class );
// That's all folks
return suite;

View File

@ -0,0 +1,135 @@
package org.postgresql.test.jdbc2;
import java.sql.*;
import junit.framework.TestCase;
import org.postgresql.test.JDBC2Tests;
/**
* <p>Title: </p>
* <p>Description: </p>
* <p>Copyright: Copyright (c) 2001</p>
* <p>Company: </p>
* @author unascribed
* @version 1.0
*/
public class UpdateableResultTest extends TestCase
{
public UpdateableResultTest( String name )
{
super( name );
}
public void testUpdateable()
{
try
{
Connection con = JDBC2Tests.openDB();
JDBC2Tests.createTable(con, "updateable","id int primary key, name text, notselected text");
JDBC2Tests.createTable(con, "second","id1 int primary key, name1 text");
Statement st1 = con.createStatement();
boolean retVal = st1.execute( "insert into updateable ( id, name, notselected ) values (1, 'jake', 'avalue')" );
assert( retVal== false );
retVal = st1.execute( "insert into second (id1, name1) values (1, 'jake')" );
assertTrue( !retVal );
st1.close();
Statement st = con.createStatement( ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_UPDATABLE );
ResultSet rs = st.executeQuery( "select id, name, notselected from updateable" );
assertNotNull(rs);
while (rs.next())
{
rs.updateInt( "id",2 );
rs.updateString( "name","dave" );
rs.updateRow();
assertTrue( rs.getInt("id") == 2 );
assertTrue( rs.getString("name").equals("dave"));
assertTrue( rs.getString("notselected").equals("avalue") );
rs.deleteRow();
rs.moveToInsertRow();
rs.updateInt("id",3);
rs.updateString("name", "paul");
rs.insertRow();
assertTrue( rs.getInt("id") == 3 );
assertTrue( rs.getString("name").equals("paul"));
assertTrue( rs.getString("notselected") == null );
}
rs.close();
rs = st.executeQuery("select id1, id, name, name1 from updateable, second" );
try
{
while( rs.next() )
{
rs.updateInt( "id",2 );
rs.updateString( "name","dave" );
rs.updateRow();
}
assertTrue( "should not get here, update should fail", false );
}
catch (SQLException ex){}
try
{
rs = st.executeQuery("select oid,* from updateable");
if ( rs.first() )
{
rs.updateInt( "id", 3 );
rs.updateString( "name", "dave3");
rs.updateRow();
assertTrue(rs.getInt("id") == 3 );
assertTrue(rs.getString("name").equals("dave3"));
rs.moveToInsertRow();
rs.updateInt( "id", 4 );
rs.updateString( "name", "dave4" );
rs.insertRow();
rs.updateInt("id", 5 );
rs.updateString( "name", "dave5" );
rs.insertRow();
rs.moveToCurrentRow();
assertTrue(rs.getInt("id") == 3 );
assertTrue(rs.getString("name").equals("dave3"));
assertTrue( rs.next() );
assertTrue(rs.getInt("id") == 4 );
assertTrue(rs.getString("name").equals("dave4"));
assertTrue( rs.next() );
assertTrue(rs.getInt("id") == 5 );
assertTrue(rs.getString("name").equals("dave5"));
}
}
catch(SQLException ex)
{
fail(ex.getMessage());
}
st.close();
JDBC2Tests.dropTable( con,"updateable" );
JDBC2Tests.closeDB( con );
}
catch (Exception ex)
{
fail(ex.getMessage());
}
}
}