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" );