fixed up OID74 test to conform with other tests, by Kris Jurka
authorDave Cramer
Thu, 18 Dec 2003 04:08:30 +0000 (04:08 +0000)
committerDave Cramer
Thu, 18 Dec 2003 04:08:30 +0000 (04:08 +0000)
src/interfaces/jdbc/org/postgresql/test/jdbc2/OID74Test.java

index 5a5781ac691225927400069be6a2dc4d7beecb89..eb83cd7a69500899e052123ca644d9bf0ed29aca 100644 (file)
@@ -1,99 +1,80 @@
-package org.postgresql.test.jdbc2;\r
-                                                                                                                                                                                     \r
-import org.postgresql.test.TestUtil;\r
-import junit.framework.TestCase;\r
-import java.io.*;\r
-import java.sql.*;\r
-\r
-import java.io.ByteArrayInputStream;\r
-import java.io.InputStream;\r
-import java.sql.*;\r
-\r
-/**\r
- * User: alexei\r
- * Date: 17-Dec-2003\r
- * Time: 11:01:44\r
- * @version $Id: OID74Test.java,v 1.2 2003/12/17 15:45:05 davec Exp $\r
- */\r
-public class OID74Test  extends TestCase\r
-{\r
-   private Connection con;\r
-    \r
-\r
-   public OID74Test( String name )\r
-   {\r
-       super(name);\r
-   }\r
-   public void setUp() throws Exception\r
-   {\r
-   }\r
-   public void tearDown() throws Exception\r
-   {\r
-   }\r
-   public void testBinaryStream()\r
-   {\r
-       //set up conection here\r
-       Connection c = null;\r
-           \r
-           Statement st = null; \r
-           try \r
-       {\r
-           c =  DriverManager.getConnection("jdbc:postgresql://localhost/test?compatible=7.1&user=test");\r
-               c.setAutoCommit(false);\r
-           st = c.createStatement();\r
-               st.execute("CREATE temp TABLE temp (col oid)");\r
-           }\r
-        catch (SQLException e) \r
-       {\r
-               //another issue: when connecting to 7.3 database and this exception occurs because the table already exists,\r
-               //st.setBinaryStream throws internal error in LargeObjectManager initialisation code\r
-               fail("table creating error, probably already exists, code=" + e.getErrorCode());\r
-           }\r
-       finally\r
-       {\r
-           try{ if (st != null) st.close(); }catch(SQLException ex){};\r
-       }\r
-           \r
-       PreparedStatement pstmt = null;\r
-           try \r
-       {\r
-           \r
-           pstmt = c.prepareStatement("INSERT INTO temp VALUES (?)");\r
-           //in case of 7.4 server, should block here\r
-               pstmt.setBinaryStream(1, new ByteArrayInputStream(new byte[]{1, 2, 3, 4, 5}), 5);\r
-           assertTrue( (pstmt.executeUpdate() == 1) );\r
-               pstmt.close();\r
-           \r
-               pstmt = c.prepareStatement("SELECT col FROM temp LIMIT 1");\r
-               ResultSet rs = pstmt.executeQuery();\r
-\r
-               assertTrue("No results from query", rs.next() );\r
-\r
-           //in case of 7.4 server, should block here\r
-           InputStream in = rs.getBinaryStream(1);\r
-               int data;\r
-               while ((data = in.read()) != -1)\r
-                   System.out.println(data);\r
-               rs.close();\r
-               st.close();\r
-           c.createStatement().executeUpdate("DELETE FROM temp");\r
-           c.commit();\r
-       }\r
-       catch ( IOException ioex )\r
-       {\r
-           fail( ioex.getMessage() );\r
-       }\r
-       catch (SQLException ex)\r
-       {\r
-           fail( ex.getMessage() );\r
-       } \r
-       finally \r
-       {\r
-           try\r
-           {\r
-               if ( c!=null) c.close();\r
-           }\r
-           catch( SQLException e1){}\r
-       }\r
-   }   \r
-}\r
+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);
+   }   
+}