You are viewing a plain text version of this content. The canonical link for it is here.
Posted to derby-commits@db.apache.org by dj...@apache.org on 2007/01/16 04:14:56 UTC

svn commit: r496580 - /db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/DatabaseMetaDataTest.java

Author: djd
Date: Mon Jan 15 19:14:55 2007
New Revision: 496580

URL: http://svn.apache.org/viewvc?view=rev&rev=496580
Log:
DERBY-2242 (partial) Add more fixtures to DatabaseMetaDataTest and add list of
methods not yet tested.

Modified:
    db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/DatabaseMetaDataTest.java

Modified: db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/DatabaseMetaDataTest.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/DatabaseMetaDataTest.java?view=diff&rev=496580&r1=496579&r2=496580
==============================================================================
--- db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/DatabaseMetaDataTest.java (original)
+++ db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/DatabaseMetaDataTest.java Mon Jan 15 19:14:55 2007
@@ -37,7 +37,23 @@
 /**
  * Test the DatabaseMetaData api.
  * Work in progress.
- *
+ * Methods left to test from JDBC 3
+ * 
+ *  getBestRowIdentifier
+ *  getColumnPrivileges
+ *  getColumns
+ *  getCrossReference
+ *  getExportedKeys
+ *  getImportedKeys
+ *  getIndexInfo
+ *  getPrimaryKeys
+ *  getProcedureColumns
+ *  getProcedures
+ *  getSchemas
+ *  getTablePrivileges
+ *  getTables
+ *  getTableTypes
+ *  getTypeInfo
  */
 public class DatabaseMetaDataTest extends BaseJDBCTestCase {
     /*
@@ -143,7 +159,6 @@
      * is supported or not. Methods start with
      * 'support'. See secton 7.3 in JDBC 3.0 specification.
      * 
-     * Work in progress.
      * @throws SQLException 
      *
      */
@@ -182,28 +197,28 @@
         // specific to convert.
         assertFalse(dmd.supportsConvert(Types.INTEGER, Types.SMALLINT));
         
-        //supportsCoreSQLGrammar()
+        assertFalse(dmd.supportsCoreSQLGrammar());
         assertTrue(dmd.supportsCorrelatedSubqueries());
         
         assertTrue(dmd.supportsDataDefinitionAndDataManipulationTransactions());
         assertFalse(dmd.supportsDataManipulationTransactionsOnly());
-        //supportsDifferentTableCorrelationNames()
+        assertTrue(dmd.supportsDifferentTableCorrelationNames());
         
         // Bug DERBY-2244, order by with expressions was added by DERBY-134
         assertFalse(dmd.supportsExpressionsInOrderBy());
         
-        //supportsExtendedSQLGrammar()
-        //supportsFullOuterJoins()
-        //supportsGetGeneratedKeys()
+        assertFalse(dmd.supportsExtendedSQLGrammar());
+        assertFalse(dmd.supportsFullOuterJoins());
+        assertFalse(dmd.supportsGetGeneratedKeys());
         
         assertTrue(dmd.supportsGroupBy());
-        //supportsGroupByBeyondSelect()
-        //supportsGroupByUnrelated()
+        assertTrue(dmd.supportsGroupByBeyondSelect());
+        assertTrue(dmd.supportsGroupByUnrelated());
         
-        //supportsIntegrityEnhancementFacility()
+        assertFalse(dmd.supportsIntegrityEnhancementFacility());
         assertTrue(dmd.supportsLikeEscapeClause());
-        //supportsLimitedOuterJoins()
-       //supportsMinimumSQLGrammar()
+        assertTrue(dmd.supportsLimitedOuterJoins());
+        assertTrue(dmd.supportsMinimumSQLGrammar());
         
         assertFalse(dmd.supportsMixedCaseIdentifiers());
         assertTrue(dmd.supportsMixedCaseQuotedIdentifiers());
@@ -266,12 +281,12 @@
         assertTrue(dmd.supportsSchemasInTableDefinitions());
         assertTrue(dmd.supportsSelectForUpdate());
         
-       //supportsStatementPooling()
-       //supportsStoredProcedures()
-       //supportsSubqueriesInComparisons()
-       //supportsSubqueriesInExists()
-       //supportsSubqueriesInIns()
-       //supportsSubqueriesInQuantifieds()
+        assertFalse(dmd.supportsStatementPooling());
+        assertTrue(dmd.supportsStoredProcedures());
+        assertTrue(dmd.supportsSubqueriesInComparisons());
+        assertTrue(dmd.supportsSubqueriesInExists());
+        assertTrue(dmd.supportsSubqueriesInIns());
+        assertTrue(dmd.supportsSubqueriesInQuantifieds());
         assertTrue(dmd.supportsTableCorrelationNames());
         
         assertTrue(dmd.supportsTransactionIsolationLevel(
@@ -296,7 +311,6 @@
      * Note a return of zero from one of these functions means
      * no limit or limit not known.
      * 
-     * Work in progress.
      * @throws SQLException 
      *
      */
@@ -442,16 +456,33 @@
                     expectedJDBCMajor, jdbcMajor);
             assertEquals("JDBC Minor version", 0, jdbcMinor);
         }
-
-        /*
-String  getDatabaseProductName()
-        Retrieves the name of this database product.
-String  getDatabaseProductVersion()
-        Retrieves the version number of this database product.
-String  getDriverName()
-        Retrieves the name of this JDBC driver.
-String  getDriverVersion()
-*/
+    }
+    
+    /**
+     * getURL() method. Note that this method
+     * is the only JDBC 3 DatabaseMetaData method
+     * that is dropped in JSR169.
+     */
+    public void testGetURL() throws SQLException
+    {
+        DatabaseMetaData dmd = getDMD();
+        
+        String url;
+        try {
+            url = dmd.getURL();
+        } catch (NoSuchMethodError e) {
+            // JSR 169 - method must not be there!
+            assertTrue("getURL not supported", JDBC.vmSupportsJSR169());
+            assertFalse("getURL not supported", JDBC.vmSupportsJDBC2());
+            return;
+        }
+        
+        assertFalse("getURL is supported!", JDBC.vmSupportsJSR169());
+        assertTrue("getURL is supported!", JDBC.vmSupportsJDBC2());
+        
+        assertEquals("getURL match",
+                getTestConfiguration().getJDBCUrl(),
+                url);              
     }
     
     /**
@@ -522,6 +553,7 @@
      * that are not supported by derby. In each case the
      * metadata should return an empty ResultSet of the
      * correct shape.
+     * TODO: types and column names of the ResultSets
      */
     public void testUnimplementedSQLObjectAttributes() throws SQLException
     {