You are viewing a plain text version of this content. The canonical link for it is here.
Posted to torque-dev@db.apache.org by se...@apache.org on 2008/02/07 01:29:32 UTC

svn commit: r619230 - in /db/torque/village/trunk: src/test/com/workingdogs/village/TestMySQL.java xdocs/changes.xml

Author: seade
Date: Wed Feb  6 16:29:31 2008
New Revision: 619230

URL: http://svn.apache.org/viewvc?rev=619230&view=rev
Log:
Refactored unit tests to use JUnit.  This has not been configured to run as part of the build process.
Added test case for TORQUE-8.

Modified:
    db/torque/village/trunk/src/test/com/workingdogs/village/TestMySQL.java
    db/torque/village/trunk/xdocs/changes.xml

Modified: db/torque/village/trunk/src/test/com/workingdogs/village/TestMySQL.java
URL: http://svn.apache.org/viewvc/db/torque/village/trunk/src/test/com/workingdogs/village/TestMySQL.java?rev=619230&r1=619229&r2=619230&view=diff
==============================================================================
--- db/torque/village/trunk/src/test/com/workingdogs/village/TestMySQL.java (original)
+++ db/torque/village/trunk/src/test/com/workingdogs/village/TestMySQL.java Wed Feb  6 16:29:31 2008
@@ -21,26 +21,32 @@
 
 import java.sql.Connection;
 import java.sql.DriverManager;
+import java.sql.PreparedStatement;
+import java.sql.SQLException;
+
+import junit.framework.TestCase;
 
 /**
- * This class is used for testing the functionality of this product. While creating this code, I have closed many potential bugs,
- * but I'm sure that others still exist. Thus, if you find a bug in Village, please add to this test suite so that the bug will be
- * sure to be fixed in future versions.
+ * This class is used for testing the functionality of this product. While
+ * creating this code, I have closed many potential bugs, but I'm sure that
+ * others still exist. Thus, if you find a bug in Village, please add to this
+ * test suite so that the bug will be sure to be fixed in future versions.
  *
- * <P>
- * In order to do the testing, you will need to be able to connect via JDBC to your database. Since I use MySQL <A
- * HREF="http://www.mysql.com/">http://www.mysql.com/</A> , this testing suite is best for that database. I also use the mm MySQL
- * drivers <A HREF="http://www.worldserver.com/mm.mysql/">http://www.worldserver.com/mm.mysql/</A> because it is the best driver
- * that I have found for MySQL.
+ * <p>
+ * In order to do the testing, you will need to be able to connect via JDBC to
+ * your database. Since I use <a href="http://www.mysql.com/">MySQL</a>, this
+ * testing suite is best for that database. I also use the mm MySQL drivers
+ * <a href="http://mmmysql.sourceforge.net/">mm MySQL drivers</a> because it
+ * is the best driver that I have found for MySQL.
  * </p>
  *
  * <P>
  * Note that Village should work with <strong>any</strong> JDBC compliant driver.
  * </p>
  *
- * <P>
- * Here is the schema that this test expects ( you should be able to copy and paste it into your MySQL database that you want to
- * use ):
+ * <p>
+ * Here is the schema that this test expects (you should be able to copy and
+ * paste it into your MySQL database that you want to use):
  * <pre>
  *  CREATE TABLE test
  *  (
@@ -72,10 +78,18 @@
  *  </pre>
  * </p>
  *
+ * <p>
+ * Note that presently this class is hardcoded to use a MySQL database named
+ * "village" with a username of "village" and a password of "village".  It is
+ * a modified version of Jon's original Unit test that apparently pre-dated
+ * JUnit!
+ * </p>
+ *
  * @author <a href="mailto:jon@latchkey.com">Jon S. Stevens</a>
+ * @author <a href="mailto:seade@backstagetech.com.au">Scott Eade</a>
  * @version $Revision: 565 $
  */
-public class TestMySQL
+public class TestMySQL extends TestCase
 {
     /** The database connection */
     static Connection conn;
@@ -90,18 +104,21 @@
     private static String DB_HOST = "localhost";
 
     /**
-     * This is the user to log into the database as. For this test, the user must have insert/update/delete access to the database.
+     * This is the user to log into the database as. For this test, the user
+     * must have insert/update/delete access to the database.
      */
-    private static String DB_USER = "";
+    private static String DB_USER = "village";
 
     /** the password for the user */
-    private static String DB_PASS = "";
+    private static String DB_PASS = "village";
 
     /** mm MySQL Driver setup */
     private static String DB_DRIVER = "org.gjt.mm.mysql.Driver";
+    //private static String DB_DRIVER = "com.mysql.jdbc.Driver";
 
     /** mm MySQL Driver setup */
-    private static String DB_CONNECTION = "jdbc:mysql://" + DB_HOST + "/" + DB_NAME + "?user=" + DB_USER + "&password=" + DB_PASS;
+    private static String DB_CONNECTION = "jdbc:mysql://" + DB_HOST + "/"
+            + DB_NAME + "?user=" + DB_USER + "&password=" + DB_PASS;
 
     /** used for debugging */
     private static boolean debugging = true;
@@ -110,9 +127,6 @@
     private static int num = 1;
 
     /** used for debugging */
-    private static int testCount = 1;
-
-    /** used for debugging */
     private static int TDS = 1;
 
     /** used for debugging */
@@ -124,391 +138,415 @@
     /** used for debugging */
     private static int FAILED = 2;
 
+    /** The number of times to hit the schema to try and reach a connection
+     *  limit. */
+    private static int SCHEMA_LOOPS = 2000;
+
     /**
-     * @TODO DOCUMENT ME!
+     * Creates a new instance.
      *
-     * @param argv @TODO DOCUMENT ME!
+     * @param name the name of the test case to run
      */
-    public static void main(String [] argv)
+    public TestMySQL(String name)
     {
-        if ((argv.length > 0) && (argv.length < 5))
-        {
-            System.out.println("Format: TestMySQL <DB_NAME> <DB_TABLE> <DB_HOST> <DB_USER> <DB_PASS>");
+        super(name);
+    }
+
+//    /**
+//     * @TODO DOCUMENT ME!
+//     *
+//     * @param argv
+//     */
+//    public static void main(String [] argv)
+//    {
+//        if ((argv.length > 0) && (argv.length < 5))
+//        {
+//            System.out.println("Format: TestMySQL <DB_NAME> <DB_TABLE> <DB_HOST> <DB_USER> <DB_PASS>");
+//
+//            return;
+//        }
+//        else if (argv.length == 5)
+//        {
+//            DB_NAME = argv[0];
+//            DB_TABLE = argv[1];
+//            DB_HOST = argv[2];
+//            DB_USER = argv[3];
+//            DB_PASS = argv[4];
+//            DB_CONNECTION = "jdbc:mysql://" + DB_HOST + "/" + DB_NAME + "?user=" + DB_USER + "&password=" + DB_PASS;
+//        }
+//
+//        getConnection();
+//
+//        testDeleteSomeRecords();
+//        testTableDataSet();
+//        testQueryDataSet();
+//        testSchemaResultSet();
+//        testTableDataSet2();
+//        testTableDataSet3();
+//        testTableDataSet4();
+//        testRemoveRecord();
+//    }
 
-            return;
+    public void setUp()
+    {
+        try
+        {
+            getConnection();
         }
-        else if (argv.length == 5)
+        catch (ClassNotFoundException e)
         {
-            DB_NAME = argv[0];
-            DB_TABLE = argv[1];
-            DB_HOST = argv[2];
-            DB_USER = argv[3];
-            DB_PASS = argv[4];
-            DB_CONNECTION = "jdbc:mysql://" + DB_HOST + "/" + DB_NAME + "?user=" + DB_USER + "&password=" + DB_PASS;
+            System.out.println("\n\nConnection failed : " + e.getMessage());
+        }
+        catch (SQLException e)
+        {
+            System.out.println("\n\nConnection failed : " + e.getMessage());
         }
+    }
 
-        getConnection();
+    protected void tearDown() throws Exception
+    {
+        // Empty the database.
+        PreparedStatement ps = conn.prepareStatement("delete from test");
+        ps.execute();
 
-        //      testDeleteSomeRecords();
-        //      testTableDataSet();
-        //      testQueryDataSet();
-        //      testTableDataSet2();
-        //      testTableDataSet3();
-        //      testTableDataSet4();
-        //      testRemoveRecord();
+        conn.close();
     }
 
     /**
-     * This test verifies that deleting multiple records actually works. after execution, there should be no more records in the
-     * database.
+     * This test verifies that deleting multiple records actually works. after
+     * execution, there should be no more records in the database.
      */
     public static void testDeleteSomeRecords()
+            throws SQLException, DataSetException
     {
-        try
-        {
-            KeyDef kd = new KeyDef().addAttrib("e");
-            TableDataSet tds = new TableDataSet(conn, DB_TABLE, kd);
-            tds.where("e > 100");
-
-            // add some records
-            Record newRec = tds.addRecord();
-            newRec.setValue("e", "200");
-
-            Record newRec2 = tds.addRecord();
-            newRec2.setValue("e", "300");
-            tds.save();
-
-            // get those records
-            tds.fetchRecords();
-
-            for (int i = 0; i < tds.size(); i++)
-            {
-                Record rec = tds.getRecord(i);
-
-                // delete those records
-                rec.markToBeDeleted();
-                System.out.println("here " + i + ": " + rec.toString());
-            }
+        KeyDef kd = new KeyDef().addAttrib("e");
+        TableDataSet tds = new TableDataSet(conn, DB_TABLE, kd);
+        tds.where("e > 100");
 
-            tds.save();
-            tds.close();
-        }
-        catch (Exception e)
+        // add some records
+        Record newRec = tds.addRecord();
+        newRec.setValue("e", "200");
+
+        Record newRec2 = tds.addRecord();
+        newRec2.setValue("e", "300");
+        tds.save();
+
+        // get those records
+        tds.fetchRecords();
+
+        for (int i = 0; i < tds.size(); i++)
         {
-            debug(TDS, e);
+            Record rec = tds.getRecord(i);
+
+            // delete those records
+            rec.markToBeDeleted();
+            System.out.println("here " + i + ": " + rec.toString());
         }
+
+        tds.save();
+        tds.close();
     }
 
     /**
-     * This test will throw a DataSetException. The first getRecord will succeed and the second one will fail.
+     * This test checks that a DataSetException is thrown when appropriate.
      */
     public static void testRemoveRecord()
+            throws SQLException, DataSetException
     {
-        try
-        {
-            TableDataSet tds = new TableDataSet(conn, DB_TABLE);
-            tds.addRecord();
+        TableDataSet tds = new TableDataSet(conn, DB_TABLE);
+        tds.addRecord();
 
-            Record rec = tds.getRecord(0);
-            tds.removeRecord(rec);
+        Record rec = tds.getRecord(0);
+        tds.removeRecord(rec);
 
+        try
+        {
             Record foo = tds.getRecord(0);
-            tds.close();
         }
-        catch (Exception e)
+        catch (DataSetException e)
         {
-            debug(TDS, e);
+            // expected
         }
+        tds.close();
     }
 
-    /**
-     * @TODO DOCUMENT ME!
-     */
     public static void testTableDataSet2()
+            throws SQLException, DataSetException
     {
-        try
-        {
-            TableDataSet tds = new TableDataSet(conn, DB_TABLE);
-            Record rec = tds.addRecord();
-            rec.setValue("b", 2);
-            tds.save();
-            tds.close();
-        }
-        catch (Exception e)
-        {
-            debug(TDS, e);
-        }
+        TableDataSet tds = new TableDataSet(conn, DB_TABLE);
+        Record rec = tds.addRecord();
+        rec.setValue("b", 2);
+        tds.save();
+        tds.close();
     }
 
-    /**
-     * @TODO DOCUMENT ME!
-     */
     public static void testTableDataSet3()
+            throws SQLException, DataSetException
     {
-        try
-        {
-            TableDataSet tds = new TableDataSet(conn, DB_TABLE);
-            Record rec = tds.addRecord();
-            rec.setValue("b", 2);
-            rec.save();
-            tds.close();
-        }
-        catch (Exception e)
-        {
-            debug(TDS, e);
-        }
+        TableDataSet tds = new TableDataSet(conn, DB_TABLE);
+        Record rec = tds.addRecord();
+        rec.setValue("b", 2);
+        rec.save();
+        tds.close();
     }
 
-    /**
-     * @TODO DOCUMENT ME!
-     */
     public static void testTableDataSet4()
+            throws SQLException, DataSetException
     {
-        try
-        {
-            KeyDef kd = new KeyDef().addAttrib("b");
-            TableDataSet tds = new TableDataSet(conn, DB_TABLE, kd);
-            Record rec = tds.addRecord();
-            rec.setValueNull("b");
-            System.out.println(rec.getSaveString());
-            rec.save();
-            rec.markToBeDeleted();
-            System.out.println(rec.getSaveString());
-            rec.save();
-            tds.close();
-        }
-        catch (Exception e)
-        {
-            debug(TDS, e);
-        }
+        KeyDef kd = new KeyDef().addAttrib("b");
+        TableDataSet tds = new TableDataSet(conn, DB_TABLE, kd);
+        Record rec = tds.addRecord();
+        rec.setValueNull("b");
+        System.out.println(rec.getSaveString());
+        rec.save();
+        rec.markToBeDeleted();
+        System.out.println(rec.getSaveString());
+        rec.save();
+        tds.close();
     }
 
-    /**
-     * @TODO DOCUMENT ME!
-     */
     public static void testTableDataSet()
+            throws SQLException, DataSetException
     {
-        try
-        {
-            KeyDef kd = new KeyDef().addAttrib("a");
-            TableDataSet tds = new TableDataSet(conn, DB_TABLE, kd);
-            tds.order("a");
-            tds.fetchRecords();
-
-            int size = tds.size();
-
-            debug(TDS, "size of fetchRecords", size);
-            debug(TDS, "getSelectString()", tds.getSelectString());
-            test(TDS, tds.getSelectString(), "SELECT * FROM test ORDER BY a");
-
-            // add a new record
-            Record addRec = tds.addRecord();
-            addRec.setValue("a", 1);
-            addRec.setValue("b", 2);
-            addRec.setValue("c", 2343);
-            addRec.setValue("d", 33333);
-            addRec.setValue("e", 22222);
-            addRec.setValue("f", 234324);
-            addRec.setValue("g", 3434);
-            addRec.setValue("h", 2343.30);
-            addRec.setValue("i", 2343.22);
-            addRec.setValue("j", 333.3);
-            addRec.setValue("k", 333.3);
-            addRec.setValue("l", "lskdfsd");
-            addRec.setValue("m", "lksdflkjsldf");
-            addRec.setValue("n", new java.util.Date());
-            addRec.setValue("o", new java.util.Date());
-            addRec.setValue("p", new java.util.Date());
-            addRec.setValue("q", new java.util.Date());
-            addRec.setValue("r", "lksdflkjsldf");
-            addRec.setValue("s", "lksdflkjsldf");
-            addRec.setValue("t", "lksdflkjsldf");
-            addRec.setValue("u", "lksdflkjsldf");
-            addRec.setValue("v", "lksdflkjsldf");
-            addRec.setValue("w", "lksdflkjsldf");
-            addRec.setValue("x", "lksdflkjsldf");
-
-            debug(TDS, "getSaveString() for insert", addRec.getSaveString());
-            test(TDS, addRec.getSaveString(),
-                "INSERT INTO test ( a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x ) VALUES ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? )");
-
-            // save it (causing an INSERT to happen)
-            addRec.save();
-
-            debug(TDS, "size of TDS after save()", tds.size());
-            test(TDS, size + 1, tds.size());
-
-            Record updateRec = tds.getRecord(0);
-            updateRec.setValue("b", 234);
-            updateRec.setValue("c", 4);
-            updateRec.setValue("d", 4);
-            updateRec.setValue("e", 5);
-            updateRec.setValue("f", 6);
-            updateRec.setValue("g", 3);
-            updateRec.setValue("h", 3.4);
-            updateRec.setValue("i", 33.44);
-            updateRec.setValue("j", 33.55);
-            updateRec.setValue("k", 3333.7);
-            updateRec.setValue("l", "qweqwe");
-            updateRec.setValue("m", "qweqwe");
-            updateRec.setValue("n", new java.util.Date());
-            updateRec.setValue("o", new java.util.Date());
-            updateRec.setValue("p", new java.util.Date());
-            updateRec.setValue("q", new java.util.Date());
-            updateRec.setValue("r", "qweqwe");
-            updateRec.setValue("s", "qweqwe");
-            updateRec.setValue("t", "qweqwe");
-            updateRec.setValue("u", "qweqwe");
-            updateRec.setValue("v", "qweqwe");
-            updateRec.setValue("w", "qweqwe");
-            updateRec.setValue("x", "qweqwe");
-
-            debug(TDS, "updateRec.getRefreshQueryString()", updateRec.getRefreshQueryString());
-
-            debug(TDS, "updateRec.getSaveString() for update", updateRec.getSaveString());
-            test(TDS, updateRec.getSaveString(),
-                "UPDATE test SET b = ?, c = ?, d = ?, e = ?, f = ?, g = ?, h = ?, i = ?, j = ?, k = ?, l = ?, m = ?, n = ?, o = ?, p = ?, q = ?, r = ?, s = ?, t = ?, u = ?, v = ?, w = ?, x = ? WHERE a = ?");
-
-            updateRec.save();
-
-            // mark it for deletion
-            addRec.markToBeDeleted();
-
-            debug(TDS, "addRec.getSaveString() for delete", addRec.getSaveString());
-            test(TDS, addRec.getSaveString(), "DELETE FROM test WHERE a = ?");
-
-            // save it (causing a DELETE to happen and also remove the records from the TDS)
-            addRec.save();
-            test(TDS, tds.size(), 0);
-
-            tds.close();
-
-            // Start a new TableDataSet, this is to test the Record.refresh() method
-            tds = new TableDataSet(conn, DB_TABLE, kd);
-            tds.fetchRecords();
-            addRec = tds.addRecord();
-            addRec.setValue("a", 1);
-            addRec.save();
-
-            tds = new TableDataSet(conn, DB_TABLE, kd);
-            tds.fetchRecords();
-
-            Record getRec = tds.getRecord(0);
-
-            debug(TDS, "getRec.asString() 1a:", getRec.getValue("a").asString());
-            test(TDS, getRec.getValue("a").asString(), "1");
-            debug(TDS, "getRec.asString() 1b:", getRec.getValue("b").asString());
-            test(TDS, getRec.getValue("b").asString(), "0");
-
-            getRec.setValue("b", 5);
-
-            debug(TDS, "getRec.asString() 2b:", getRec.getValue("b").asString());
-            test(TDS, getRec.getValue("b").asString(), "5");
-
-            getRec.refresh(conn);
-
-            debug(TDS, "getRec.asString() 3b:", getRec.getValue("b").asString());
-            test(TDS, getRec.getValue("b").asString(), "0");
-            debug(TDS, "getRec.asString() 2a:", getRec.getValue("a").asString());
-            test(TDS, getRec.getValue("a").asString(), "1");
-
-            getRec.markToBeDeleted();
-            getRec.save();
-
-            System.out.println(tds.toString());
-            System.out.println(getRec.toString());
-            System.out.println(tds.schema().toString());
+        KeyDef kd = new KeyDef().addAttrib("a");
+        TableDataSet tds = new TableDataSet(conn, DB_TABLE, kd);
+        tds.order("a");
+        tds.fetchRecords();
+
+        int size = tds.size();
+        assertEquals(0, size);
+
+        debug(TDS, "size of fetchRecords", size);
+        debug(TDS, "getSelectString()", tds.getSelectString());
+        assertEquals("SELECT * FROM test ORDER BY a", tds.getSelectString());
+
+        // add a new record
+        Record addRec = tds.addRecord();
+        addRec.setValue("a", 1);
+        addRec.setValue("b", 2);
+        addRec.setValue("c", 2343);
+        addRec.setValue("d", 33333);
+        addRec.setValue("e", 22222);
+        addRec.setValue("f", 234324);
+        addRec.setValue("g", 3434);
+        addRec.setValue("h", 2343.30);
+        addRec.setValue("i", 2343.22);
+        addRec.setValue("j", 333.3);
+        addRec.setValue("k", 333.3);
+        addRec.setValue("l", "lskdfsd");
+        addRec.setValue("m", "lksdflkjsldf");
+        addRec.setValue("n", new java.util.Date());
+        addRec.setValue("o", new java.util.Date());
+        addRec.setValue("p", new java.util.Date());
+        addRec.setValue("q", new java.util.Date());
+        addRec.setValue("r", "lksdflkjsldf");
+        addRec.setValue("s", "lksdflkjsldf");
+        addRec.setValue("t", "lksdflkjsldf");
+        addRec.setValue("u", "lksdflkjsldf");
+        addRec.setValue("v", "lksdflkjsldf");
+        addRec.setValue("w", "lksdflkjsldf");
+        addRec.setValue("x", "lksdflkjsldf");
+
+        debug(TDS, "getSaveString() for insert", addRec.getSaveString());
+        assertEquals("INSERT INTO test ( a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x ) VALUES ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? )",
+                addRec.getSaveString());
+
+        // save it (causing an INSERT to happen)
+        addRec.save();
+
+        debug(TDS, "size of TDS after save()", tds.size());
+        assertEquals(1, tds.size());
+
+        Record updateRec = tds.getRecord(0);
+        updateRec.setValue("b", 234);
+        updateRec.setValue("c", 4);
+        updateRec.setValue("d", 4);
+        updateRec.setValue("e", 5);
+        updateRec.setValue("f", 6);
+        updateRec.setValue("g", 3);
+        updateRec.setValue("h", 3.4);
+        updateRec.setValue("i", 33.44);
+        updateRec.setValue("j", 33.55);
+        updateRec.setValue("k", 3333.7);
+        updateRec.setValue("l", "qweqwe");
+        updateRec.setValue("m", "qweqwe");
+        updateRec.setValue("n", new java.util.Date());
+        updateRec.setValue("o", new java.util.Date());
+        updateRec.setValue("p", new java.util.Date());
+        updateRec.setValue("q", new java.util.Date());
+        updateRec.setValue("r", "qweqwe");
+        updateRec.setValue("s", "qweqwe");
+        updateRec.setValue("t", "qweqwe");
+        updateRec.setValue("u", "qweqwe");
+        updateRec.setValue("v", "qweqwe");
+        updateRec.setValue("w", "qweqwe");
+        updateRec.setValue("x", "qweqwe");
+
+        debug(TDS, "updateRec.getRefreshQueryString()", updateRec.getRefreshQueryString());
+
+        debug(TDS, "updateRec.getSaveString() for update", updateRec.getSaveString());
+        assertEquals("UPDATE test SET b = ?, c = ?, d = ?, e = ?, f = ?, g = ?, h = ?, i = ?, j = ?, k = ?, l = ?, m = ?, n = ?, o = ?, p = ?, q = ?, r = ?, s = ?, t = ?, u = ?, v = ?, w = ?, x = ? WHERE a = ?",
+                updateRec.getSaveString());
+
+        updateRec.save();
+        assertEquals(1, tds.size());
+
+        // mark it for deletion
+        addRec.markToBeDeleted();
+        assertEquals(1, addRec.getValue(1).asInt());
+
+        debug(TDS, "addRec.getSaveString() for delete", addRec.getSaveString());
+        assertEquals("DELETE FROM test WHERE a = ?", addRec.getSaveString());
+
+        // save it (causing a DELETE to happen and also remove the records from the TDS)
+        assertEquals(1, addRec.save());
+        // The save() no longer deletes the record, but rather marks it for deletion.
+        assertEquals(Enums.ZOMBIE, addRec.getSaveType());
+        assertEquals(1, tds.size());
+        // Remove the zombie records.
+        tds.save();
+        assertEquals(0, tds.size());
+
+        tds.close();
+
+        // Start a new TableDataSet, this is to test the Record.refresh() method
+        tds = new TableDataSet(conn, DB_TABLE, kd);
+        tds.fetchRecords();
+        addRec = tds.addRecord();
+        addRec.setValue("a", 1);
+        addRec.save();
+        assertEquals(1, tds.size());
+
+        tds = new TableDataSet(conn, DB_TABLE, kd);
+        tds.fetchRecords();
+        assertEquals(1, tds.size());
+
+        Record getRec = tds.getRecord(0);
+
+        debug(TDS, "getRec.asString() 1a:", getRec.getValue("a").asString());
+        assertEquals("1", getRec.getValue("a").asString());
+        debug(TDS, "getRec.asString() 1b:", getRec.getValue("b").asString());
+        // TODO Check that smallint is supposed to return null now
+        assertNull(getRec.getValue("b").asString());
+
+        // Since there is no getRec.save() before the .refresh() the value being
+        // set here will not end up in the database.
+        getRec.setValue("b", 5);
+
+        debug(TDS, "getRec.asString() 2b:", getRec.getValue("b").asString());
+        assertEquals("5", getRec.getValue("b").asString());
+
+        // While the JavaDoc for Record.refresh() indicates that it cannot be
+        // done for a modified record, it certainly allows it and in fact seems
+        // to be the intended purpose of the method.
+        getRec.refresh(conn);
+
+        debug(TDS, "getRec.asString() 3b:", getRec.getValue("b").asString());
+        // TODO Check that smallint is supposed to return null now
+        assertNull(getRec.getValue("b").asString());
+        debug(TDS, "getRec.asString() 2a:", getRec.getValue("a").asString());
+        assertEquals("1", getRec.getValue("a").asString());
+
+        getRec.markToBeDeleted();
+        getRec.save();
+
+        System.out.println(tds.toString());
+        System.out.println(getRec.toString());
+        System.out.println(tds.schema().toString());
 
-            tds.close();
-        }
-        catch (Exception e)
-        {
-            debug(TDS, e);
-        }
+        tds.close();
     }
 
     /**
-     * @TODO DOCUMENT ME!
+     * @throws DataSetException 
+     * @throws SQLException 
      */
     public static void testQueryDataSet()
+            throws SQLException, DataSetException
     {
-        try
-        {
-            KeyDef kd = new KeyDef().addAttrib("a");
-            TableDataSet tds = new TableDataSet(conn, DB_TABLE, kd);
-            tds.fetchRecords();
-
-            // add a new record
-            Record addRec = tds.addRecord();
-            addRec.setValue("a", 1);
-            addRec.setValue("b", 2);
-            debug(TDS, "addRec.getSaveString()", addRec.getSaveString());
-            test(TDS, addRec.getSaveString(), "INSERT INTO test ( a, b ) VALUES ( ?, ? )");
-
-            // save it (causing an INSERT to happen)
-            addRec.save();
-            tds.close();
-
-            // get a QDS
-            QueryDataSet qds = new QueryDataSet(conn, "SELECT * FROM " + DB_TABLE);
-            qds.fetchRecords();
-
-            debug(QDS, "qds.getSelectString()", qds.getSelectString());
-            test(QDS, qds.getSelectString(), "SELECT * FROM test");
-
-            debug(QDS, "qds.size()", qds.size()); // should be 1
-
-            Record rec = qds.getRecord(0);
-            debug(QDS, "rec.size()", rec.size()); // should be 24
-
-            debug(QDS, "rec.getValue(\"a\").asString()", rec.getValue("a").asString());
-            debug(QDS, "rec.getValue(\"b\").asString()", rec.getValue("b").asString());
-            debug(QDS, "rec.getValue(\"c\").asString()", rec.getValue("c").asString());
-            debug(QDS, "rec.getValue(\"d\").asString()", rec.getValue("d").asString());
-
-            // this tests to make sure that "d" was assigned properly
-            // there was a bug where wasNull() was being checked and this wasn't
-            // being setup correctly.
-            test(QDS, rec.getValue("d").asString(), "0");
-            qds.close();
-
-            // delete the record
-            kd = new KeyDef().addAttrib("a");
-            tds = new TableDataSet(conn, DB_TABLE, kd);
-            tds.fetchRecords();
-
-            Record getRec = tds.getRecord(0);
-            getRec.markToBeDeleted();
-            getRec.save();
-            tds.close();
-        }
-        catch (Exception e)
-        {
-            debug(TDS, e);
-        }
+        KeyDef kd = new KeyDef().addAttrib("a");
+        TableDataSet tds = new TableDataSet(conn, DB_TABLE, kd);
+        tds.fetchRecords();
+
+        // add a new record
+        Record addRec = tds.addRecord();
+        addRec.setValue("a", 1);
+        addRec.setValue("b", 2);
+        debug(TDS, "addRec.getSaveString()", addRec.getSaveString());
+        assertEquals("INSERT INTO test ( a, b ) VALUES ( ?, ? )", addRec.getSaveString());
+
+        // save it (causing an INSERT to happen)
+        addRec.save();
+        tds.close();
+
+        // get a QDS
+        QueryDataSet qds = new QueryDataSet(conn, "SELECT * FROM " + DB_TABLE);
+        qds.fetchRecords();
+
+        debug(QDS, "qds.getSelectString()", qds.getSelectString());
+        assertEquals("SELECT * FROM test", qds.getSelectString());
+
+        debug(QDS, "qds.size()", qds.size()); // should be 1
+
+        Record rec = qds.getRecord(0);
+        debug(QDS, "rec.size()", rec.size()); // should be 24
+
+        debug(QDS, "rec.getValue(\"a\").asString()", rec.getValue("a").asString());
+        debug(QDS, "rec.getValue(\"b\").asString()", rec.getValue("b").asString());
+        debug(QDS, "rec.getValue(\"c\").asString()", rec.getValue("c").asString());
+        debug(QDS, "rec.getValue(\"d\").asString()", rec.getValue("d").asString());
+
+        // this tests to make sure that "d" was assigned properly
+        // there was a bug where wasNull() was being checked and this wasn't
+        // being setup correctly.
+        // TODO Check that tinyint is supposed to return null now
+        //assertEquals("0", rec.getValue("d").asString());
+        assertNull(rec.getValue("d").asString());
+        qds.close();
+
+        // delete the record
+        kd = new KeyDef().addAttrib("a");
+        tds = new TableDataSet(conn, DB_TABLE, kd);
+        tds.fetchRecords();
+
+        Record getRec = tds.getRecord(0);
+        getRec.markToBeDeleted();
+        getRec.save();
+        tds.close();
     }
 
     /**
-     * @TODO DOCUMENT ME!
+     * This is a test for TORQUE-8.
+     *
+     * @throws DataSetException 
+     * @throws SQLException 
      */
-    public static void getConnection()
+    public static void testSchemaResultSet()
+            throws SQLException, DataSetException
     {
-        try
+        for (int i = 0; i < SCHEMA_LOOPS; i++)
         {
-            Class.forName(DB_DRIVER);
-            conn = DriverManager.getConnection(DB_CONNECTION);
-        }
-        catch (Exception e)
-        {
-            System.out.println("\n\nConnection failed : " + e.getMessage());
+            System.out.println("testSchemaResultSet() run " + i + " of " + SCHEMA_LOOPS);
+            Schema schema = new Schema().schema(conn, "test", "a");
+            assertEquals(schema.getTableName(), "test");
         }
     }
+    
+    /**
+     * Get a connection. 
+     */
+    public static void getConnection()
+            throws ClassNotFoundException, SQLException
+    {
+        Class.forName(DB_DRIVER);
+        conn = DriverManager.getConnection(DB_CONNECTION);
+    }
 
     /**
-     * @TODO DOCUMENT ME!
+     * Print some debug info.
      *
-     * @param type @TODO DOCUMENT ME!
-     * @param e @TODO DOCUMENT ME!
+     * @param type
+     * @param e
      */
     public static void debug(int type, Exception e)
     {
@@ -518,10 +556,10 @@
     }
 
     /**
-     * @TODO DOCUMENT ME!
+     * Print some debug info.
      *
-     * @param type @TODO DOCUMENT ME!
-     * @param method @TODO DOCUMENT ME!
+     * @param type
+     * @param method
      */
     public static void debug(int type, String method)
     {
@@ -529,11 +567,11 @@
     }
 
     /**
-     * @TODO DOCUMENT ME!
+     * Print some debug info.
      *
-     * @param type @TODO DOCUMENT ME!
-     * @param method @TODO DOCUMENT ME!
-     * @param value @TODO DOCUMENT ME!
+     * @param type
+     * @param method
+     * @param value
      */
     public static void debug(int type, String method, int value)
     {
@@ -541,89 +579,11 @@
     }
 
     /**
-     * @TODO DOCUMENT ME!
-     *
-     * @param type @TODO DOCUMENT ME!
-     * @param test @TODO DOCUMENT ME!
-     * @param value @TODO DOCUMENT ME!
-     */
-    public static void test(int type, int test, int value)
-    {
-        if (debugging)
-        {
-            String name = "";
-
-            if (type == TDS)
-            {
-                name = "TableDataSet";
-            }
-            else
-            {
-                name = "QueryDataSet";
-            }
-
-            String val = "";
-
-            if (test == value)
-            {
-                val = "Passed";
-            }
-            else
-            {
-                val = "Failed";
-            }
-
-            System.out.print("[" + num++ + "] Test " + testCount++ + " - " + val + "!\n");
-
-            System.out.flush();
-        }
-    }
-
-    /**
-     * @TODO DOCUMENT ME!
-     *
-     * @param type @TODO DOCUMENT ME!
-     * @param test @TODO DOCUMENT ME!
-     * @param value @TODO DOCUMENT ME!
-     */
-    public static void test(int type, String test, String value)
-    {
-        if (debugging)
-        {
-            String name = "";
-
-            if (type == TDS)
-            {
-                name = "TableDataSet";
-            }
-            else
-            {
-                name = "QueryDataSet";
-            }
-
-            String val = "";
-
-            if (test.equals(value))
-            {
-                val = "Passed";
-            }
-            else
-            {
-                val = "Failed";
-            }
-
-            System.out.print("[" + num++ + "] Test " + testCount++ + " - " + val + "!\n");
-
-            System.out.flush();
-        }
-    }
-
-    /**
-     * @TODO DOCUMENT ME!
+     * Print some debug info.
      *
-     * @param type @TODO DOCUMENT ME!
-     * @param method @TODO DOCUMENT ME!
-     * @param value @TODO DOCUMENT ME!
+     * @param type
+     * @param method
+     * @param value
      */
     public static void debug(int type, String method, String value)
     {

Modified: db/torque/village/trunk/xdocs/changes.xml
URL: http://svn.apache.org/viewvc/db/torque/village/trunk/xdocs/changes.xml?rev=619230&r1=619229&r2=619230&view=diff
==============================================================================
--- db/torque/village/trunk/xdocs/changes.xml (original)
+++ db/torque/village/trunk/xdocs/changes.xml Wed Feb  6 16:29:31 2008
@@ -1,41 +1,46 @@
-<?xml version="1.0"?>
-<!--
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements.  See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership.  The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License.  You may obtain a copy of the License at
-
-   http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing,
- software distributed under the License is distributed on an
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND, either express or implied.  See the License for the
- specific language governing permissions and limitations
- under the License.
--->
-
-<document>
-  <properties>
-    <title>Changes</title>
-  </properties>
-
-  <body>
-  <release version="3.3-RC3" date="in SVN">
-    <action type="update" dev="tv">
-      Integration into Torque
-    </action>
-  </release>
-  <release version="2.0" date="2005-08-28">
-    <action type="update" dev="henning">
-      Added maven build
-    </action>
-    <action type="update" dev="henning">
-      Moved to subversion
-    </action>
-  </release>
-  </body>
-</document>
+<?xml version="1.0"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements.  See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership.  The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License.  You may obtain a copy of the License at
+
+   http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing,
+ software distributed under the License is distributed on an
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ KIND, either express or implied.  See the License for the
+ specific language governing permissions and limitations
+ under the License.
+-->
+
+<document>
+  <properties>
+    <title>Changes</title>
+  </properties>
+
+  <body>
+  <release version="3.3" date="in SVN">
+    <action type="update" dev="seade">
+      Refactored unit tests to use JUnit.  Added test case for TORQUE-8.
+    </action>
+  </release>
+  <release version="3.3-RC3" date="in SVN">
+    <action type="update" dev="tv">
+      Integration into Torque
+    </action>
+  </release>
+  <release version="2.0" date="2005-08-28">
+    <action type="update" dev="henning">
+      Added maven build
+    </action>
+    <action type="update" dev="henning">
+      Moved to subversion
+    </action>
+  </release>
+  </body>
+</document>



---------------------------------------------------------------------
To unsubscribe, e-mail: torque-dev-unsubscribe@db.apache.org
For additional commands, e-mail: torque-dev-help@db.apache.org