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)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy