9
9
*
10
10
* PS: Do you know how difficult it is to type on a train? ;-)
11
11
*
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 $
13
13
*/
14
14
15
15
public class DatabaseMetaDataTest extends TestCase
@@ -48,7 +48,8 @@ public void testGetMetaData()
48
48
49
49
ResultSet rs = dbmd .getTables ( null , null , "test%" , new String [] {"TABLE" });
50
50
assertTrue ( rs .next () );
51
- assertTrue ( rs .getString ("TABLE_NAME" ).equals ("testmetadata" ) );
51
+ String tableName = rs .getString ("TABLE_NAME" );
52
+ assertTrue ( tableName .equals ("testmetadata" ) );
52
53
53
54
rs .close ();
54
55
@@ -101,7 +102,7 @@ public void testCapabilities()
101
102
assertTrue (dbmd .supportsMinimumSQLGrammar ());
102
103
assertTrue (!dbmd .supportsCoreSQLGrammar ());
103
104
assertTrue (!dbmd .supportsExtendedSQLGrammar ());
104
- assertTrue (! dbmd .supportsANSI92EntryLevelSQL ());
105
+ assertTrue (dbmd .supportsANSI92EntryLevelSQL ());
105
106
assertTrue (!dbmd .supportsANSI92IntermediateSQL ());
106
107
assertTrue (!dbmd .supportsANSI92FullSQL ());
107
108
@@ -228,6 +229,57 @@ public void testIdentifiers()
228
229
}
229
230
}
230
231
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
+ }
231
283
public void testForeignKeys ()
232
284
{
233
285
try
@@ -262,10 +314,10 @@ public void testForeignKeys()
262
314
assertTrue ( fkColumnName .equals ( "people_id" ) || fkColumnName .equals ( "policy_id" ) ) ;
263
315
264
316
String fkName = rs .getString ( "FK_NAME" );
265
- assertTrue ( fkName .equals ( "people_pkey " ) || fkName .equals ( "policy_pkey " ) );
317
+ assertTrue ( fkName .equals ( "people " ) || fkName .equals ( "policy " ) );
266
318
267
319
String pkName = rs .getString ( "PK_NAME" );
268
- // assertTrue( pkName.equals("users" ) );
320
+ assertTrue ( pkName .equals ( "people_pkey" ) || pkName . equals ( "policy_pkey" ) );
269
321
270
322
}
271
323
@@ -282,7 +334,7 @@ public void testForeignKeys()
282
334
assertTrue ( rs .getString ( "FKTABLE_NAME" ).equals ( "users" ) );
283
335
assertTrue ( rs .getString ( "FKCOLUMN_NAME" ).equals ( "people_id" ) );
284
336
285
- assertTrue ( rs .getString ( "FK_NAME" ).equals ( "people_pkey " ) );
337
+ assertTrue ( rs .getString ( "FK_NAME" ).equals ( "people " ) );
286
338
287
339
288
340
JDBC2Tests .dropTable ( con1 , "users" );
0 commit comments