Return-Path: Delivered-To: apmail-db-torque-dev-archive@www.apache.org Received: (qmail 84008 invoked from network); 7 Feb 2008 00:30:05 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 7 Feb 2008 00:30:05 -0000 Received: (qmail 12961 invoked by uid 500); 7 Feb 2008 00:29:57 -0000 Delivered-To: apmail-db-torque-dev-archive@db.apache.org Received: (qmail 12947 invoked by uid 500); 7 Feb 2008 00:29:57 -0000 Mailing-List: contact torque-dev-help@db.apache.org; run by ezmlm Precedence: bulk List-Unsubscribe: List-Help: List-Post: List-Id: "Apache Torque Developers List" Reply-To: "Apache Torque Developers List" Delivered-To: mailing list torque-dev@db.apache.org Received: (qmail 12936 invoked by uid 500); 7 Feb 2008 00:29:57 -0000 Received: (qmail 12932 invoked by uid 99); 7 Feb 2008 00:29:57 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 06 Feb 2008 16:29:57 -0800 X-ASF-Spam-Status: No, hits=-100.0 required=10.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.3] (HELO eris.apache.org) (140.211.11.3) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 07 Feb 2008 00:29:25 +0000 Received: by eris.apache.org (Postfix, from userid 65534) id 8D2331A9832; Wed, 6 Feb 2008 16:29:32 -0800 (PST) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r619230 - in /db/torque/village/trunk: src/test/com/workingdogs/village/TestMySQL.java xdocs/changes.xml Date: Thu, 07 Feb 2008 00:29:32 -0000 To: torque-commits@db.apache.org From: seade@apache.org X-Mailer: svnmailer-1.0.8 Message-Id: <20080207002932.8D2331A9832@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org 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. * - *

- * In order to do the testing, you will need to be able to connect via JDBC to your database. Since I use MySQL http://www.mysql.com/ , this testing suite is best for that database. I also use the mm MySQL - * drivers http://www.worldserver.com/mm.mysql/ because it is the best driver - * that I have found for MySQL. + *

+ * In order to do the testing, you will need to be able to connect via JDBC to + * your database. Since I use MySQL, this + * testing suite is best for that database. I also use the mm MySQL drivers + * mm MySQL drivers because it + * is the best driver that I have found for MySQL. *

* *

* Note that Village should work with any JDBC compliant driver. *

* - *

- * 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 ): + *

+ * 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): *

  *  CREATE TABLE test
  *  (
@@ -72,10 +78,18 @@
  *  
*

* + *

+ * 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! + *

+ * * @author Jon S. Stevens + * @author Scott Eade * @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 "); + 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 "); +// +// 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 @@ - - - - - - Changes - - - - - - Integration into Torque - - - - - Added maven build - - - Moved to subversion - - - - + + + + + + Changes + + + + + + Refactored unit tests to use JUnit. Added test case for TORQUE-8. + + + + + Integration into Torque + + + + + Added maven build + + + Moved to subversion + + + + --------------------------------------------------------------------- To unsubscribe, e-mail: torque-dev-unsubscribe@db.apache.org For additional commands, e-mail: torque-dev-help@db.apache.org