OSDN Git Service

added tests for crossReferences
authorDave Cramer <davec@fastcrypt.com>
Tue, 30 Jul 2002 13:22:38 +0000 (13:22 +0000)
committerDave Cramer <davec@fastcrypt.com>
Tue, 30 Jul 2002 13:22:38 +0000 (13:22 +0000)
src/interfaces/jdbc/org/postgresql/test/jdbc2/DatabaseMetaDataTest.java

index 26675a7..772743c 100644 (file)
@@ -9,7 +9,7 @@ import java.sql.*;
  *
  * PS: Do you know how difficult it is to type on a train? ;-)
  *
- * $Id: DatabaseMetaDataTest.java,v 1.9 2002/07/23 03:59:55 barry Exp $
+ * $Id: DatabaseMetaDataTest.java,v 1.10 2002/07/30 13:22:38 davec Exp $
  */
 
 public class DatabaseMetaDataTest extends TestCase
@@ -48,7 +48,8 @@ public class DatabaseMetaDataTest extends TestCase
 
                        ResultSet rs = dbmd.getTables( null, null, "test%", new String[] {"TABLE"});
                        assertTrue( rs.next() );
-                       assertTrue( rs.getString("TABLE_NAME").equals("testmetadata") );
+      String tableName = rs.getString("TABLE_NAME");
+                       assertTrue( tableName.equals("testmetadata") );
 
                        rs.close();
 
@@ -101,7 +102,7 @@ public class DatabaseMetaDataTest extends TestCase
                        assertTrue(dbmd.supportsMinimumSQLGrammar());
                        assertTrue(!dbmd.supportsCoreSQLGrammar());
                        assertTrue(!dbmd.supportsExtendedSQLGrammar());
-                       assertTrue(!dbmd.supportsANSI92EntryLevelSQL());
+                       assertTrue(dbmd.supportsANSI92EntryLevelSQL());
                        assertTrue(!dbmd.supportsANSI92IntermediateSQL());
                        assertTrue(!dbmd.supportsANSI92FullSQL());
 
@@ -228,6 +229,57 @@ public class DatabaseMetaDataTest extends TestCase
                }
        }
 
+  public void testCrossReference()
+  {
+               try
+               {
+                 Connection con1 = JDBC2Tests.openDB();
+
+                 JDBC2Tests.createTable( con1, "vv", "a int not null, b int not null, primary key ( a, b )" );
+
+                 JDBC2Tests.createTable( con1, "ww", "m int not null, n int not null, primary key ( m, n ), foreign key ( m, n ) references vv ( a, b )" );
+
+
+                       DatabaseMetaData dbmd = con.getMetaData();
+                       assertNotNull(dbmd);
+
+      ResultSet rs = dbmd.getCrossReference(null, "", "vv", null, "", "ww" );
+
+      for (int j=1; rs.next(); j++ )
+      {
+
+         String pkTableName = rs.getString( "PKTABLE_NAME" );
+         assertTrue (  pkTableName.equals("vv")  );
+
+         String pkColumnName = rs.getString( "PKCOLUMN_NAME" );
+         assertTrue( pkColumnName.equals("a") || pkColumnName.equals("b"));
+
+         String fkTableName = rs.getString( "FKTABLE_NAME" );
+         assertTrue( fkTableName.equals( "ww" ) );
+
+         String fkColumnName = rs.getString( "FKCOLUMN_NAME" );
+         assertTrue( fkColumnName.equals( "m" ) || fkColumnName.equals( "n" ) ) ;
+
+         String fkName = rs.getString( "FK_NAME" );
+         assertTrue( fkName.equals( "<unnamed>") );
+
+         String pkName = rs.getString( "PK_NAME" );
+         assertTrue( pkName.equals("vv_pkey") );
+
+         int keySeq  = rs.getInt( "KEY_SEQ" );
+         assertTrue( keySeq == j );
+      }
+
+
+      JDBC2Tests.dropTable( con1, "vv" );
+      JDBC2Tests.dropTable( con1, "ww" );
+
+               }
+               catch (SQLException ex)
+               {
+                       fail(ex.getMessage());
+               }
+  }
   public void testForeignKeys()
   {
                try
@@ -262,10 +314,10 @@ public class DatabaseMetaDataTest extends TestCase
          assertTrue( fkColumnName.equals( "people_id" ) || fkColumnName.equals( "policy_id" ) ) ;
 
          String fkName = rs.getString( "FK_NAME" );
-         assertTrue( fkName.equals( "people_pkey") || fkName.equals( "policy_pkey" ) );
+         assertTrue( fkName.equals( "people") || fkName.equals( "policy" ) );
 
          String pkName = rs.getString( "PK_NAME" );
-//         assertTrue( pkName.equals("users") );
+         assertTrue( pkName.equals( "people_pkey") || pkName.equals( "policy_pkey" ) );
 
       }
 
@@ -282,7 +334,7 @@ public class DatabaseMetaDataTest extends TestCase
       assertTrue( rs.getString( "FKTABLE_NAME" ).equals( "users" ) );
       assertTrue( rs.getString( "FKCOLUMN_NAME" ).equals( "people_id" ) );
 
-      assertTrue( rs.getString( "FK_NAME" ).equals( "people_pkey" ) );
+      assertTrue( rs.getString( "FK_NAME" ).equals( "people" ) );
 
 
       JDBC2Tests.dropTable( con1, "users" );