Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Skip to content

Commit 79d35b4

Browse files
author
Dave Cramer
committed
added tests for crossReferences
1 parent 5569514 commit 79d35b4

File tree

1 file changed

+58
-6
lines changed

1 file changed

+58
-6
lines changed

src/interfaces/jdbc/org/postgresql/test/jdbc2/DatabaseMetaDataTest.java

Lines changed: 58 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
*
1010
* PS: Do you know how difficult it is to type on a train? ;-)
1111
*
12-
* $Id: DatabaseMetaDataTest.java,v 1.9 2002/07/23 03:59:55 barry Exp $
12+
* $Id: DatabaseMetaDataTest.java,v 1.10 2002/07/30 13:22:38 davec Exp $
1313
*/
1414

1515
public class DatabaseMetaDataTest extends TestCase
@@ -48,7 +48,8 @@ public void testGetMetaData()
4848

4949
ResultSet rs = dbmd.getTables( null, null, "test%", new String[] {"TABLE"});
5050
assertTrue( rs.next() );
51-
assertTrue( rs.getString("TABLE_NAME").equals("testmetadata") );
51+
String tableName = rs.getString("TABLE_NAME");
52+
assertTrue( tableName.equals("testmetadata") );
5253

5354
rs.close();
5455

@@ -101,7 +102,7 @@ public void testCapabilities()
101102
assertTrue(dbmd.supportsMinimumSQLGrammar());
102103
assertTrue(!dbmd.supportsCoreSQLGrammar());
103104
assertTrue(!dbmd.supportsExtendedSQLGrammar());
104-
assertTrue(!dbmd.supportsANSI92EntryLevelSQL());
105+
assertTrue(dbmd.supportsANSI92EntryLevelSQL());
105106
assertTrue(!dbmd.supportsANSI92IntermediateSQL());
106107
assertTrue(!dbmd.supportsANSI92FullSQL());
107108

@@ -228,6 +229,57 @@ public void testIdentifiers()
228229
}
229230
}
230231

232+
public void testCrossReference()
233+
{
234+
try
235+
{
236+
Connection con1 = JDBC2Tests.openDB();
237+
238+
JDBC2Tests.createTable( con1, "vv", "a int not null, b int not null, primary key ( a, b )" );
239+
240+
JDBC2Tests.createTable( con1, "ww", "m int not null, n int not null, primary key ( m, n ), foreign key ( m, n ) references vv ( a, b )" );
241+
242+
243+
DatabaseMetaData dbmd = con.getMetaData();
244+
assertNotNull(dbmd);
245+
246+
ResultSet rs = dbmd.getCrossReference(null, "", "vv", null, "", "ww" );
247+
248+
for (int j=1; rs.next(); j++ )
249+
{
250+
251+
String pkTableName = rs.getString( "PKTABLE_NAME" );
252+
assertTrue ( pkTableName.equals("vv") );
253+
254+
String pkColumnName = rs.getString( "PKCOLUMN_NAME" );
255+
assertTrue( pkColumnName.equals("a") || pkColumnName.equals("b"));
256+
257+
String fkTableName = rs.getString( "FKTABLE_NAME" );
258+
assertTrue( fkTableName.equals( "ww" ) );
259+
260+
String fkColumnName = rs.getString( "FKCOLUMN_NAME" );
261+
assertTrue( fkColumnName.equals( "m" ) || fkColumnName.equals( "n" ) ) ;
262+
263+
String fkName = rs.getString( "FK_NAME" );
264+
assertTrue( fkName.equals( "<unnamed>") );
265+
266+
String pkName = rs.getString( "PK_NAME" );
267+
assertTrue( pkName.equals("vv_pkey") );
268+
269+
int keySeq = rs.getInt( "KEY_SEQ" );
270+
assertTrue( keySeq == j );
271+
}
272+
273+
274+
JDBC2Tests.dropTable( con1, "vv" );
275+
JDBC2Tests.dropTable( con1, "ww" );
276+
277+
}
278+
catch (SQLException ex)
279+
{
280+
fail(ex.getMessage());
281+
}
282+
}
231283
public void testForeignKeys()
232284
{
233285
try
@@ -262,10 +314,10 @@ public void testForeignKeys()
262314
assertTrue( fkColumnName.equals( "people_id" ) || fkColumnName.equals( "policy_id" ) ) ;
263315

264316
String fkName = rs.getString( "FK_NAME" );
265-
assertTrue( fkName.equals( "people_pkey") || fkName.equals( "policy_pkey" ) );
317+
assertTrue( fkName.equals( "people") || fkName.equals( "policy" ) );
266318

267319
String pkName = rs.getString( "PK_NAME" );
268-
// assertTrue( pkName.equals("users") );
320+
assertTrue( pkName.equals( "people_pkey") || pkName.equals( "policy_pkey" ) );
269321

270322
}
271323

@@ -282,7 +334,7 @@ public void testForeignKeys()
282334
assertTrue( rs.getString( "FKTABLE_NAME" ).equals( "users" ) );
283335
assertTrue( rs.getString( "FKCOLUMN_NAME" ).equals( "people_id" ) );
284336

285-
assertTrue( rs.getString( "FK_NAME" ).equals( "people_pkey" ) );
337+
assertTrue( rs.getString( "FK_NAME" ).equals( "people" ) );
286338

287339

288340
JDBC2Tests.dropTable( con1, "users" );

0 commit comments

Comments
 (0)