From b9deede24139f64cb2dc609ca46ae9cfe0b062a9 Mon Sep 17 00:00:00 2001 From: Dave Cramer Date: Thu, 18 Dec 2003 04:08:30 +0000 Subject: [PATCH] fixed up OID74 test to conform with other tests, by Kris Jurka --- .../org/postgresql/test/jdbc2/OID74Test.java | 179 ++++++++---------- 1 file changed, 80 insertions(+), 99 deletions(-) diff --git a/src/interfaces/jdbc/org/postgresql/test/jdbc2/OID74Test.java b/src/interfaces/jdbc/org/postgresql/test/jdbc2/OID74Test.java index 5a5781ac691..eb83cd7a695 100644 --- a/src/interfaces/jdbc/org/postgresql/test/jdbc2/OID74Test.java +++ b/src/interfaces/jdbc/org/postgresql/test/jdbc2/OID74Test.java @@ -1,99 +1,80 @@ -package org.postgresql.test.jdbc2; - -import org.postgresql.test.TestUtil; -import junit.framework.TestCase; -import java.io.*; -import java.sql.*; - -import java.io.ByteArrayInputStream; -import java.io.InputStream; -import java.sql.*; - -/** - * User: alexei - * Date: 17-Dec-2003 - * Time: 11:01:44 - * @version $Id: OID74Test.java,v 1.2 2003/12/17 15:45:05 davec Exp $ - */ -public class OID74Test extends TestCase -{ - private Connection con; - - - public OID74Test( String name ) - { - super(name); - } - public void setUp() throws Exception - { - } - public void tearDown() throws Exception - { - } - public void testBinaryStream() - { - //set up conection here - Connection c = null; - - Statement st = null; - try - { - c = DriverManager.getConnection("jdbc:postgresql://localhost/test?compatible=7.1&user=test"); - c.setAutoCommit(false); - st = c.createStatement(); - st.execute("CREATE temp TABLE temp (col oid)"); - } - catch (SQLException e) - { - //another issue: when connecting to 7.3 database and this exception occurs because the table already exists, - //st.setBinaryStream throws internal error in LargeObjectManager initialisation code - fail("table creating error, probably already exists, code=" + e.getErrorCode()); - } - finally - { - try{ if (st != null) st.close(); }catch(SQLException ex){}; - } - - PreparedStatement pstmt = null; - try - { - - pstmt = c.prepareStatement("INSERT INTO temp VALUES (?)"); - //in case of 7.4 server, should block here - pstmt.setBinaryStream(1, new ByteArrayInputStream(new byte[]{1, 2, 3, 4, 5}), 5); - assertTrue( (pstmt.executeUpdate() == 1) ); - pstmt.close(); - - pstmt = c.prepareStatement("SELECT col FROM temp LIMIT 1"); - ResultSet rs = pstmt.executeQuery(); - - assertTrue("No results from query", rs.next() ); - - //in case of 7.4 server, should block here - InputStream in = rs.getBinaryStream(1); - int data; - while ((data = in.read()) != -1) - System.out.println(data); - rs.close(); - st.close(); - c.createStatement().executeUpdate("DELETE FROM temp"); - c.commit(); - } - catch ( IOException ioex ) - { - fail( ioex.getMessage() ); - } - catch (SQLException ex) - { - fail( ex.getMessage() ); - } - finally - { - try - { - if ( c!=null) c.close(); - } - catch( SQLException e1){} - } - } -} +package org.postgresql.test.jdbc2; + +import org.postgresql.test.TestUtil; +import junit.framework.TestCase; +import java.io.*; +import java.sql.*; + +import java.io.ByteArrayInputStream; +import java.io.InputStream; +import java.util.Properties; +import java.sql.*; + +/** + * User: alexei + * Date: 17-Dec-2003 + * Time: 11:01:44 + * @version $Id: OID74Test.java,v 1.3 2003/12/18 04:08:30 davec Exp $ + */ +public class OID74Test extends TestCase +{ + + public OID74Test( String name ) + { + super(name); + } + public void setUp() throws Exception + { + } + public void tearDown() throws Exception + { + } + public void testBinaryStream() throws SQLException + { + //set up conection here + Properties props = new Properties(); + props.setProperty("compatible","7.1"); + Connection c = TestUtil.openDB(props); + c.setAutoCommit(false); + + TestUtil.createTable(c,"temp","col oid"); + + Statement st = null; + + PreparedStatement pstmt = null; + try + { + + pstmt = c.prepareStatement("INSERT INTO temp VALUES (?)"); + pstmt.setBinaryStream(1, new ByteArrayInputStream(new byte[]{1, 2, 3, 4, 5}), 5); + assertTrue( (pstmt.executeUpdate() == 1) ); + pstmt.close(); + + pstmt = c.prepareStatement("SELECT col FROM temp LIMIT 1"); + ResultSet rs = pstmt.executeQuery(); + + assertTrue("No results from query", rs.next() ); + + InputStream in = rs.getBinaryStream(1); + int data; + int i = 1; + while ((data = in.read()) != -1) + assertEquals(data,i++); + rs.close(); + pstmt.close(); + c.createStatement().executeUpdate("DELETE FROM temp"); + c.commit(); + } + catch ( IOException ioex ) + { + fail( ioex.getMessage() ); + } + catch (SQLException ex) + { + fail( ex.getMessage() ); + } + + TestUtil.dropTable(c,"temp"); + TestUtil.closeDB(c); + } +}