aboutsummaryrefslogtreecommitdiff
path: root/src/interfaces/jdbc/org/postgresql/test/jdbc2/OID74Test.java
blob: eb83cd7a69500899e052123ca644d9bf0ed29aca (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
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.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);
  	}	
}