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 fu...@apache.org on 2006/03/21 20:27:38 UTC

svn commit: r387605 - in /db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests: tests/jdbcapi/ tests/junitTests/lang/ util/

Author: fuzzylogic
Date: Tue Mar 21 11:27:36 2006
New Revision: 387605

URL: http://svn.apache.org/viewcvs?rev=387605&view=rev
Log:
DERBY-993: Enable running junitTests in J2ME environments.

Committed for Myrna Van Lunteren <m....@gmail.com> and
Andreas Korneliussen <An...@sun.com>

Modified:
    db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/SURBaseTest.java
    db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/SURDataModelSetup.java
    db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/junitTests/lang/BooleanTest.java
    db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/junitTests/lang/default_app.properties
    db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/util/BaseJDBCTestCase.java
    db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/util/BaseTestCase.java
    db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/util/TestUtil.java

Modified: db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/SURBaseTest.java
URL: http://svn.apache.org/viewcvs/db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/SURBaseTest.java?rev=387605&r1=387604&r2=387605&view=diff
==============================================================================
--- db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/SURBaseTest.java (original)
+++ db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/SURBaseTest.java Tue Mar 21 11:27:36 2006
@@ -18,12 +18,10 @@
  * language governing permissions and limitations under the License.
  */
 package org.apache.derbyTesting.functionTests.tests.jdbcapi;
-import org.apache.derbyTesting.functionTests.util.DerbyJUnitTest;
 import org.apache.derbyTesting.functionTests.util.TestUtil;
-import org.apache.derby.tools.ij;
+import org.apache.derbyTesting.functionTests.util.BaseJDBCTestCase;
 import junit.framework.*;
 import java.sql.*;
-import java.util.Properties;
 
 /**
  * Base class for testing Scrollable Updatable ResultSets. 
@@ -34,7 +32,7 @@
  * 
  * @author Andreas Korneliussen 
  */
-abstract public class SURBaseTest extends TestCase {
+abstract public class SURBaseTest extends BaseJDBCTestCase {
     
     /** Creates a new instance of SURBaseTest */
     public SURBaseTest(String name) {
@@ -62,19 +60,11 @@
         return rcon;
     }
 
-    static Connection getConnection() 
-        throws SQLException
-    {
-        String url = TestUtil.getJdbcUrlPrefix() + "wombat;create=true";
-        return DriverManager.getConnection(url);        
-    }
-    
     /**
      * Set up the connection to the database.
      */
     public void setUp() throws  Exception {       
         println("SetUp");
-        TestUtil.loadDriver();
         con = getNewConnection();
     }
     
@@ -296,17 +286,4 @@
     final static String RESULTSET_NOT_UPDATABLE_SQL_STATE = "XJ083";
     final static String LOCK_TIMEOUT_SQL_STATE = "40XL1";
     final static String LOCK_TIMEOUT_EXPRESSION_SQL_STATE = "38000";
-    
-    static void println(String text) {
-        DerbyJUnitTest.println(text);
-    }
-    
-    /**
-     * Prints the stack trace. If run in the harness, the
-     * harness will mark the test as failed if this method
-     * has been called.
-     */
-    static void printStackTrace(Throwable t) {
-        DerbyJUnitTest.printStackTrace(t);
-    }
 }

Modified: db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/SURDataModelSetup.java
URL: http://svn.apache.org/viewcvs/db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/SURDataModelSetup.java?rev=387605&r1=387604&r2=387605&view=diff
==============================================================================
--- db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/SURDataModelSetup.java (original)
+++ db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/SURDataModelSetup.java Tue Mar 21 11:27:36 2006
@@ -18,17 +18,16 @@
  * language governing permissions and limitations under the License.
  */
 package org.apache.derbyTesting.functionTests.tests.jdbcapi;
-import org.apache.derbyTesting.functionTests.util.DerbyJUnitTest;
+import org.apache.derbyTesting.functionTests.util.TestConfiguration;
 import org.apache.derbyTesting.functionTests.util.TestUtil;
+import org.apache.derbyTesting.functionTests.util.BaseJDBCTestCase;
 import java.sql.Connection;
-import java.sql.DriverManager;
 import java.sql.PreparedStatement;
 import java.sql.SQLException;
 import java.sql.Statement;
 import junit.extensions.TestSetup;
 import junit.framework.Test;
 import java.util.Set;
-import java.util.Iterator;
 import java.util.HashSet;
 import java.util.Arrays;
 import java.util.Collections;
@@ -40,6 +39,16 @@
  */
 public class SURDataModelSetup extends TestSetup
 {
+	
+	 /**
+     * Configuration for the test case.
+     * The configuration is created based on system properties.
+     *
+     * @see TestConfiguration
+     */
+    public static final TestConfiguration CONFIG = 
+        TestConfiguration.DERBY_TEST_CONFIG;
+    
     /**
      * Constructor.
      * @param test test to decorate with this setup
@@ -126,7 +135,6 @@
      * and populates the database model with data.
      */
     public void setUp() throws  Exception {       
-        TestUtil.loadDriver();
         println("Setting up datamodel: " + model);
         try {
             con = getNewConnection();
@@ -253,12 +261,12 @@
 
     /**
      * <p>
-     * Debug code to print chatty informational messages.
+     * Println code to print chatty informational messages.
      * </p>
      */
     public static void println(String text)
     {
-        DerbyJUnitTest.println(text);
+        BaseJDBCTestCase.println(text);
     }
     
     /**
@@ -267,7 +275,7 @@
      * has been called.
      */
     static void printStackTrace(Throwable t) {
-        DerbyJUnitTest.printStackTrace(t);
+        BaseJDBCTestCase.printStackTrace(t);
     }
     
     /**

Modified: db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/junitTests/lang/BooleanTest.java
URL: http://svn.apache.org/viewcvs/db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/junitTests/lang/BooleanTest.java?rev=387605&r1=387604&r2=387605&view=diff
==============================================================================
--- db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/junitTests/lang/BooleanTest.java (original)
+++ db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/junitTests/lang/BooleanTest.java Tue Mar 21 11:27:36 2006
@@ -33,6 +33,8 @@
 
 import junit.framework.*;
 
+import org.apache.derby.tools.ij;
+import org.apache.derbyTesting.functionTests.util.BigDecimalHandler;
 import org.apache.derbyTesting.functionTests.util.DerbyJUnitTest;
 
 public	class	BooleanTest	extends	DerbyJUnitTest
@@ -50,6 +52,14 @@
 	private	static	final	Boolean	FALSE = Boolean.FALSE;
 
 	private	static	final	String	NEGATE_BOOLEAN_FUNC = "negateBooleanFunc";
+    private static boolean HAVE_BIG_DECIMAL;
+	
+    static{
+    if(BigDecimalHandler.representation != BigDecimalHandler.BIGDECIMAL_REPRESENTATION)
+        HAVE_BIG_DECIMAL = false;
+    else
+        HAVE_BIG_DECIMAL = true;
+    }
 
 	/////////////////////////////////////////////////////////////
 	//
@@ -133,7 +143,7 @@
 	{
 		//setDebug( true );
 		
-		Connection	conn = getConnection();
+		Connection	conn = ij.startJBMS();
 
 		createSchema( conn );
 		populateTables( conn );
@@ -375,76 +385,172 @@
 			 "( 1, true ), ( 2, false ), ( 3, null )"
 			 );
 
-		PreparedStatement	ps = prepare
-			(
-			 conn,
-			 "select\n" +
-			 "keyCol\n" +
-			 ", cast ( booleanCol as smallint )\n" +
-			 ", cast ( booleanCol as integer )\n" +
-			 ", cast ( booleanCol as bigint )\n" +
-			 ",cast ( booleanCol as decimal )\n" +
-			 ",cast ( booleanCol as real )\n" +
-			 ",cast ( booleanCol as double )\n" +
-			 ",cast ( booleanCol as float )\n" +
-			 ",cast ( booleanCol as char(5) )\n" +
-			 ",cast ( booleanCol as varchar(5) )\n" +
-			 ",cast ( booleanCol as long varchar )\n" +
-			 ",cast ( booleanCol as clob )\n" +
-			 "from " + BOOLEAN_TABLE + " order by keyCol"
-			 );
+		PreparedStatement ps = null;
+		if (HAVE_BIG_DECIMAL)
+		{
+			ps = prepare
+			(
+				conn,
+				"select\n" +
+				"keyCol\n" +
+				", cast ( booleanCol as smallint )\n" +
+				", cast ( booleanCol as integer )\n" +
+				", cast ( booleanCol as bigint )\n" +
+				",cast ( booleanCol as decimal )\n" +
+				",cast ( booleanCol as real )\n" +
+				",cast ( booleanCol as double )\n" +
+				",cast ( booleanCol as float )\n" +
+				",cast ( booleanCol as char(5) )\n" +
+				",cast ( booleanCol as varchar(5) )\n" +
+				",cast ( booleanCol as long varchar )\n" +
+				",cast ( booleanCol as clob )\n" +
+				"from " + BOOLEAN_TABLE + " order by keyCol"
+			);
+		}
+		else
+		{
+			ps = prepare
+			(
+				conn,
+				"select\n" +
+				"keyCol\n" +
+				", cast ( booleanCol as smallint )\n" +
+				", cast ( booleanCol as integer )\n" +
+				", cast ( booleanCol as bigint )\n" +
+				",cast ( booleanCol as real )\n" +
+				",cast ( booleanCol as double )\n" +
+				",cast ( booleanCol as float )\n" +
+				",cast ( booleanCol as char(5) )\n" +
+				",cast ( booleanCol as varchar(5) )\n" +
+				",cast ( booleanCol as long varchar )\n" +
+				",cast ( booleanCol as clob )\n" +
+				"from " + BOOLEAN_TABLE + " order by keyCol"
+			);
+		}
+				
 		ResultSet			rs = ps.executeQuery();
 
 		rs.next();
-		assertRow
-			(
-			 rs,
-			 new Object[]
-				{
-					new Integer( 1 ),
-					new Integer( 1 ),
-					new Integer( 1 ),
-					new Long( 1L ),
-					new BigDecimal( 1.0 ),
-					new Float( 1.0 ),
-					new Double( 1.0 ),
-					new Float( 1.0 ),
-					"true ",
-					"true",
-					"true",
-					"true",
-				}
-			 );
+		if (HAVE_BIG_DECIMAL)
+		{
+			assertRow
+		    (
+		     rs,
+		     new Object[]
+			    {
+				    new Integer( 1 ),
+				    new Integer( 1 ),
+				    new Integer( 1 ),
+				    new Long( 1L ),
+				    new BigDecimal( 1.0 ),
+				    new Float( 1.0 ),
+				    new Double( 1.0 ),
+				    new Float( 1.0 ),
+				    "true ",
+				    "true",
+				    "true",
+				    "true",
+			    }
+		     );
+		}
+		else
+		{
+		    assertRow
+			    (
+			     rs,
+			     new Object[]
+				    {
+					    new Integer( 1 ),
+					    new Integer( 1 ),
+					    new Integer( 1 ),
+					    new Long( 1L ),
+					    new Float( 1.0 ),
+					    new Double( 1.0 ),
+					    new Float( 1.0 ),
+					    "true ",
+					    "true",
+					    "true",
+					    "true",
+				    }
+			     );
+		}
 
 		rs.next();
-		assertRow
-			(
-			 rs,
-			 new Object[]
-				{
-					new Integer( 2 ),
-					new Integer( 0 ),
-					new Integer( 0 ),
-					new Long( 0L ),
-					new BigDecimal( 0.0 ),
-					new Float( 0.0 ),
-					new Double( 0.0 ),
-					new Float( 0.0 ),
-					"false",
-					"false",
-					"false",
-					"false",
-				}
-			 );
-
+		if (HAVE_BIG_DECIMAL)
+		{
+			assertRow
+				(
+			     rs,
+			     new Object[]
+				    {
+			     		new Integer( 2 ),
+						new Integer( 0 ),
+						new Integer( 0 ),
+						new Long( 0L ),
+						new BigDecimal( 0.0 ),
+						new Float( 0.0 ),
+						new Double( 0.0 ),
+						new Float( 0.0 ),
+						"false",
+						"false",
+						"false",
+						"false",
+				    }
+				);
+		}
+		else
+		{
+			assertRow
+				(
+			     rs,
+			     new Object[]
+				    {
+			     		new Integer( 2 ),
+						new Integer( 0 ),
+						new Integer( 0 ),
+						new Long( 0L ),
+						new Float( 0.0 ),
+						new Double( 0.0 ),
+						new Float( 0.0 ),
+						"false",
+						"false",
+						"false",
+						"false",
+				    }
+				);
+		}
+		
 		rs.next();
-		assertRow
+		if (HAVE_BIG_DECIMAL)
+		{
+			assertRow
+				(
+				    rs,
+					new Object[]
+					{
+					    new Integer( 3 ),
+						null,
+						null,
+						null,
+						null,
+						null,
+						null,
+						null,
+						null,
+						null,
+						null,
+						null,
+					}
+				);
+		}
+		else
+		{
+			assertRow
 			(
-			 rs,
-			 new Object[]
+			    rs,
+				new Object[]
 				{
-					new Integer( 3 ),
-					null,
+				    new Integer( 3 ),
 					null,
 					null,
 					null,
@@ -456,8 +562,9 @@
 					null,
 					null,
 				}
-			 );
-
+			);
+		}
+	
 		close( rs );
 		close( ps );			 
 	}

Modified: db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/junitTests/lang/default_app.properties
URL: http://svn.apache.org/viewcvs/db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/junitTests/lang/default_app.properties?rev=387605&r1=387604&r2=387605&view=diff
==============================================================================
--- db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/junitTests/lang/default_app.properties (original)
+++ db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/junitTests/lang/default_app.properties Tue Mar 21 11:27:36 2006
@@ -26,5 +26,6 @@
 ij.showNoConnectionsAtStart=true
 ij.showNoCountForSelect=true
 
-# this test does not run with J2ME/JSR169
-runwithfoundation=false
+# DataSource properties, only used if ij.dataSource is set
+ij.dataSource.databaseName=wombat
+ij.dataSource.createDatabase=create

Modified: db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/util/BaseJDBCTestCase.java
URL: http://svn.apache.org/viewcvs/db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/util/BaseJDBCTestCase.java?rev=387605&r1=387604&r2=387605&view=diff
==============================================================================
--- db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/util/BaseJDBCTestCase.java (original)
+++ db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/util/BaseJDBCTestCase.java Tue Mar 21 11:27:36 2006
@@ -20,6 +20,8 @@
 package org.apache.derbyTesting.functionTests.util;
 
 import java.sql.*;
+import javax.sql.DataSource;
+import java.util.Properties;
 
 /**
  * Base class for JDBC JUnit tests.
@@ -73,10 +75,12 @@
                     CONFIG.getUserName(),
                     CONFIG.getUserPassword());
         } else {
-            throw new UnsupportedOperationException(
-                    "Creating a connection in a JSR-169 " +
-                    "environment is not yet supported. " +
-                    "Please implement :)");
+            //Use DataSource for JSR169
+            Properties prop = new Properties();
+            prop.setProperty("databaseName", CONFIG.getDatabaseName());
+            prop.setProperty("connectionAttributes", "create=true");
+            DataSource ds = TestUtil.getDataSource(prop);
+            con = ds.getConnection();
         }
         return con;
     }
@@ -133,4 +137,4 @@
         }
     }
 
-} // Enc class BaseJDBCTestCase
+} // End class BaseJDBCTestCase

Modified: db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/util/BaseTestCase.java
URL: http://svn.apache.org/viewcvs/db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/util/BaseTestCase.java?rev=387605&r1=387604&r2=387605&view=diff
==============================================================================
--- db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/util/BaseTestCase.java (original)
+++ db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/util/BaseTestCase.java Tue Mar 21 11:27:36 2006
@@ -20,7 +20,8 @@
 package org.apache.derbyTesting.functionTests.util;
 
 import junit.framework.TestCase;
-
+import java.io.PrintStream;
+import java.sql.SQLException;
 /**
  * Base class for JUnit tests.
  */
@@ -53,5 +54,42 @@
     public BaseTestCase(String name) {
         super(name);
     }
+    
+    /**
+     * Print alarm string
+     * @param text String to print
+     */
+    public static void alarm(final String text) {
+        out.println("ALARM: " + text);
+    }
+
+    /**
+     * Print debug string.
+     * @param text String to print
+     */
+    public static void println(final String text) {
+        if (CONFIG.isVerbose()) {
+            out.println("DEBUG: " + text);
+        }
+    }
+
+    /**
+     * Print debug string.
+     * @param t Throwable object to print stack trace from
+     */
+    public static void printStackTrace(Throwable t) 
+    {
+        while ( t!= null) {
+            t.printStackTrace(out);
+            
+            if (t instanceof SQLException)  {
+                t = ((SQLException) t).getNextException();
+            } else {
+                break;
+            }
+        }
+    }
+
+    private final static PrintStream out = System.out;
     
 } // End class BaseTestCase

Modified: db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/util/TestUtil.java
URL: http://svn.apache.org/viewcvs/db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/util/TestUtil.java?rev=387605&r1=387604&r2=387605&view=diff
==============================================================================
--- db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/util/TestUtil.java (original)
+++ db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/util/TestUtil.java Tue Mar 21 11:27:36 2006
@@ -790,7 +790,7 @@
                 if (framework == DERBY_NET_FRAMEWORK)
                 {
                     if (( connAttrs == null) || ((connAttrs != null) && (connAttrs.indexOf("user") < 0)))
-                        url += ":" + "user=me;password=mine;retrieveMessagesFromServerOnGetMessage=true;";
+                        url += ":" + "user=APP;password=APP;retrieveMessagesFromServerOnGetMessage=true;";
                 }
                 conn = DriverManager.getConnection(url);
     	    }