[limb-svn] r6006 - 3.x/trunk/limb/dbal/tests/cases/non-driver/query

svn at limb-project.com svn at limb-project.com
Wed Jun 20 01:15:58 MSD 2007


Author: pachanga
Date: 2007-06-20 01:15:58 +0400 (Wed, 20 Jun 2007)
New Revision: 6006
URL: http://fisheye.limb-project.com/changelog/limb/?cs=6006

Modified:
   3.x/trunk/limb/dbal/tests/cases/non-driver/query/lmbDeleteQueryTest.class.php
   3.x/trunk/limb/dbal/tests/cases/non-driver/query/lmbSelectQueryTest.class.php
Log:
-- tests fixes

Modified: 3.x/trunk/limb/dbal/tests/cases/non-driver/query/lmbDeleteQueryTest.class.php
===================================================================
--- 3.x/trunk/limb/dbal/tests/cases/non-driver/query/lmbDeleteQueryTest.class.php	2007-06-19 21:14:49 UTC (rev 6005)
+++ 3.x/trunk/limb/dbal/tests/cases/non-driver/query/lmbDeleteQueryTest.class.php	2007-06-19 21:15:58 UTC (rev 6006)
@@ -1,68 +1,68 @@
-<?php
+<?php
 /*
  * Limb PHP Framework
  *
  * @link http://limb-project.com 
  * @copyright  Copyright &copy; 2004-2007 BIT(http://bit-creative.com)
  * @license    LGPL http://www.gnu.org/copyleft/lesser.html 
- */
-lmb_require('limb/dbal/src/criteria/lmbSQLFieldCriteria.class.php');
-lmb_require('limb/dbal/src/lmbSimpleDb.class.php');
-lmb_require('limb/dbal/src/query/lmbDeleteQuery.class.php');
-
-class lmbDeleteQueryTest extends UnitTestCase
-{
-  var $query;
-  var $db;
-
-  function setUp()
-  {
-    $toolkit = lmbToolkit :: save();
-    $this->conn = $toolkit->getDefaultDbConnection();
-    $this->db = new lmbSimpleDb($this->conn);
-
-    $this->_dbCleanUp();
-  }
-
-  function tearDown()
-  {
-    $this->_dbCleanUp();
-  }
-
-  function _dbCleanUp()
-  {
-    $this->db->delete('test_db_table');
-  }
-
-  function testDelete()
-  {
-    $this->db->insert('test_db_table', array('id' => 100));
-    $this->db->insert('test_db_table', array('id' => 101));
-
-    $query = new lmbDeleteQuery('test_db_table', $this->conn);
-    $stmt = $query->getStatement();
-    $stmt->execute();
-
-    $rs = $this->db->select('test_db_table');
-    $this->assertEqual($rs->count(), 0);
-  }
-
-  function testDeleteFiltered()
-  {
-    $this->db->insert('test_db_table', array('id' => 100));
-    $this->db->insert('test_db_table', array('id' => 101));
-    $this->db->insert('test_db_table', array('id' => 102));
-
-    $query = new lmbDeleteQuery('test_db_table', $this->conn);
-    $query->addCriteria(new lmbSQLFieldCriteria('id', 100));
-    $stmt = $query->getStatement();
-    $stmt->execute();
-
-    $rs = $this->db->select('test_db_table')->sort(array('id' => 'ASC'));
-    $arr = $rs->getArray();
-    $this->assertEqual($arr[0]['id'], 101);
-    $this->assertEqual($arr[1]['id'], 102);
-    $this->assertEqual(sizeof($arr), 2);
-  }
-}
-?>
+ */
+lmb_require('limb/dbal/src/criteria/lmbSQLFieldCriteria.class.php');
+lmb_require('limb/dbal/src/lmbSimpleDb.class.php');
+lmb_require('limb/dbal/src/query/lmbDeleteQuery.class.php');
+
+class lmbDeleteQueryTest extends UnitTestCase
+{
+  var $query;
+  var $db;
+
+  function setUp()
+  {
+    $toolkit = lmbToolkit :: save();
+    $this->conn = $toolkit->getDefaultDbConnection();
+    $this->db = new lmbSimpleDb($this->conn);
+
+    $this->_dbCleanUp();
+  }
+
+  function tearDown()
+  {
+    $this->_dbCleanUp();
+  }
+
+  function _dbCleanUp()
+  {
+    $this->db->delete('test_db_table');
+  }
+
+  function testDelete()
+  {
+    $this->db->insert('test_db_table', array('id' => 100));
+    $this->db->insert('test_db_table', array('id' => 101));
+
+    $query = new lmbDeleteQuery('test_db_table', $this->conn);
+    $stmt = $query->getStatement();
+    $stmt->execute();
+
+    $rs = $this->db->select('test_db_table');
+    $this->assertEqual($rs->count(), 0);
+  }
+
+  function testDeleteFiltered()
+  {
+    $this->db->insert('test_db_table', array('id' => 100));
+    $this->db->insert('test_db_table', array('id' => 101));
+    $this->db->insert('test_db_table', array('id' => 102));
+
+    $query = new lmbDeleteQuery('test_db_table', $this->conn);
+    $query->addCriteria(new lmbSQLFieldCriteria('id', 100));
+    $stmt = $query->getStatement();
+    $stmt->execute();
+
+    $rs = $this->db->select('test_db_table')->sort(array('id' => 'ASC'));
+    $arr = $rs->getArray();
+    $this->assertEqual($arr[0]['id'], 101);
+    $this->assertEqual($arr[1]['id'], 102);
+    $this->assertEqual(sizeof($arr), 2);
+  }
+}
+?>

Modified: 3.x/trunk/limb/dbal/tests/cases/non-driver/query/lmbSelectQueryTest.class.php
===================================================================
--- 3.x/trunk/limb/dbal/tests/cases/non-driver/query/lmbSelectQueryTest.class.php	2007-06-19 21:14:49 UTC (rev 6005)
+++ 3.x/trunk/limb/dbal/tests/cases/non-driver/query/lmbSelectQueryTest.class.php	2007-06-19 21:15:58 UTC (rev 6006)
@@ -1,362 +1,356 @@
-<?php
+<?php
 /*
  * Limb PHP Framework
  *
  * @link http://limb-project.com 
  * @copyright  Copyright &copy; 2004-2007 BIT(http://bit-creative.com)
  * @license    LGPL http://www.gnu.org/copyleft/lesser.html 
- */
-require_once('limb/dbal/tests/common.inc.php');
-lmb_require('limb/dbal/src/criteria/lmbSQLRawCriteria.class.php');
-lmb_require('limb/dbal/src/criteria/lmbSQLTableFieldCriteria.class.php');
-lmb_require('limb/dbal/src/query/lmbSelectQuery.class.php');
-lmb_require('limb/dbal/src/drivers/lmbDbConnection.interface.php');
-lmb_require('limb/dbal/src/drivers/lmbDbStatement.interface.php');
-
-Mock :: generate('lmbDbConnection', 'MockConnection');
-Mock :: generate('lmbDbStatement', 'MockStatement');
-
-class lmbSelectQueryTest extends UnitTestCase
-{
-  var $conn;
-
-  function setUp()
-  {
-    $this->conn = new ConnectionTestStub();
-  }
-
-  function testSelect()
-  {
-    $sql = new lmbSelectQuery('SELECT * FROM test', $this->conn);
-
-    $this->assertEqual($sql->toString(), 'SELECT * FROM test');
-  }
-
-  function testNoFields()
-  {
-    $sql = new lmbSelectQuery('SELECT %fields% FROM test', $this->conn);
-
-    $this->assertEqual($sql->toString(), 'SELECT * FROM test');
-  }
-
-  function testAddFieldWithFields()
-  {
-    $sql = new lmbSelectQuery("SELECT t3 \n%fields%,t4 FROM test", $this->conn);
-
-    $sql->addField('t1');
-    $sql->addField('t2');
-
-    $this->assertEqual($sql->toString(), "SELECT t3 \n,'t1','t2',t4 FROM test");
-  }
-
-  function testNoFieldsAdded()
-  {
-    $sql = new lmbSelectQuery("SELECT t3 \n%fields%,t4 FROM test", $this->conn);
-
-    $this->assertEqual($sql->toString(), "SELECT t3 \n,t4 FROM test");
-  }
-
-  function testAddFieldNoFields()
-  {
-    $sql = new lmbSelectQuery('SELECT %fields% FROM test', $this->conn);
-
-    $sql->addField('t1');
-    $sql->addField('t2');
-
-    $this->assertEqual($sql->toString(), "SELECT 't1','t2' FROM test");
-  }
-
-  function testAddFieldWithAlias()
-  {
-    $sql = new lmbSelectQuery('SELECT %fields% FROM test', $this->conn);
-
-    $sql->addField('t1', 'a1');
-    $sql->addField('t2', 'a2');
-
-    $this->assertEqual($sql->toString(), "SELECT 't1' as 'a1','t2' as 'a2' FROM test");
-  }
-
-  function testNoAddTable()
-  {
-    $sql = new lmbSelectQuery('SELECT * FROM test %tables%', $this->conn);
-
-    $this->assertEqual($sql->toString(), 'SELECT * FROM test');
-  }
-
-  function testAddTable()
-  {
-    $sql = new lmbSelectQuery("SELECT * FROM test \n\t%tables%", $this->conn);
-
-    $sql->addTable('test2');
-    $sql->addTable('test3');
-
-    $this->assertEqual($sql->toString(), "SELECT * FROM test \n\t,'test2','test3'");
-  }
-
-  function testAddTableWithAlias()
-  {
-    $sql = new lmbSelectQuery("SELECT * FROM test \n\t%tables%", $this->conn);
-
-    $sql->addTable('test2', 't2');
-    $sql->addTable('test3');
-
-    $this->assertEqual($sql->toString(), "SELECT * FROM test \n\t,'test2' 't2','test3'");
-  }
-
-  function testAddLeftJoin()
-  {
-    $sql = new lmbSelectQuery('SELECT * FROM test %left_join%', $this->conn);
-
-    $sql->addLeftJoin('article', array('test.article_id' => 'article.id'));
-
-    $this->assertEqual($sql->toString(),
-                       "SELECT * FROM test LEFT JOIN 'article' ON 'test.article_id'='article.id'");
-  }
-
-  function testEmptyCondition()
-  {
-    $sql = new lmbSelectQuery('SELECT * FROM test %where%', $this->conn);
-
-    $this->assertEqual($sql->toString(),
-                       'SELECT * FROM test');
-  }
-
-  function testAddCondition()
-  {
-    $sql = new lmbSelectQuery("SELECT * FROM test WHERE \n%where%", $this->conn);
-
-    $sql->addCriteria(new lmbSQLRawCriteria('c1=:c1:'));
-
-    $this->assertEqual($sql->toString(),
-                       "SELECT * FROM test WHERE \nc1=:c1:");
-  }
-
-  function testAddConditionNoWhereClause()
-  {
-    $sql = new lmbSelectQuery("SELECT * FROM test \n%where%", $this->conn);
-
-    $sql->addCriteria(new lmbSQLRawCriteria('c1=:c1:'));
-
-    $this->assertEqual($sql->toString(),
-                       "SELECT * FROM test \nWHERE c1=:c1:");
-  }
-
-  function testAddConditionNoHint()
-  {
-    $sql = new lmbSelectQuery("SELECT * FROM test WHERE 1=1", $this->conn);
-
-    $sql->addCriteria(new lmbSQLRawCriteria('c1=:c1:'));
-
-    try
-    {
-      $sql->toString();
-      $this->assertTrue(false);
-    }
-    catch(lmbException $e){}
-  }
-
-  function testAddSeveralConditions()
-  {
-    $sql = new lmbSelectQuery('SELECT * FROM test %where%', $this->conn);
-
-    $sql->addCriteria(new lmbSQLRawCriteria('c1=:c1:'));
-    $sql->addCriteria(new lmbSQLRawCriteria('c2=:c2:'));
-
-    $this->assertEqual($sql->toString(),
-                       'SELECT * FROM test WHERE c1=:c1: AND c2=:c2:');
-  }
-
-  function testAddConditionToExistingConditions()
-  {
-    $sql = new lmbSelectQuery("SELECT * FROM test WHERE t1=t1\n %where%", $this->conn);
-
-    $sql->addCriteria(new lmbSQLRawCriteria('c1=:c1:'));
-    $sql->addCriteria(new lmbSQLRawCriteria('c2=:c2:'));
-
-    $this->assertEqual($sql->toString(),
-                       "SELECT * FROM test WHERE t1=t1\n AND c1=:c1: AND c2=:c2:");
-  }
-
-  function testAddConditionToExistingConditionsWithOrder()
-  {
-    $sql = new lmbSelectQuery("SELECT * FROM test WHERE t1=t1\n\n %where% \n\tORDER BY t1", $this->conn);
-
-    $sql->addCriteria(new lmbSQLRawCriteria('c1=:c1:'));
-    $sql->addCriteria(new lmbSQLRawCriteria('c2=:c2:'));
-
-    $this->assertEqual($sql->toString(),
-                       "SELECT * FROM test WHERE t1=t1\n\n AND c1=:c1: AND c2=:c2: \n\tORDER BY t1");
-  }
-
-  function testAddConditionToExistingConditionsWithGroup()
-  {
-    $sql = new lmbSelectQuery("SELECT * FROM test WHERE t1=t1\n\n %where% \n\tGROUP BY t1", $this->conn);
-
-    $sql->addCriteria(new lmbSQLRawCriteria('c1=:c1:'));
-    $sql->addCriteria(new lmbSQLRawCriteria('c2=:c2:'));
-
-    $this->assertEqual($sql->toString(),
-                       "SELECT * FROM test WHERE t1=t1\n\n AND c1=:c1: AND c2=:c2: \n\tGROUP BY t1");
-  }
-
-  function testEmptyOrder()
-  {
-    $sql = new lmbSelectQuery("SELECT * FROM test \n%order%", $this->conn);
-
-    $this->assertEqual($sql->toString(),
-                       'SELECT * FROM test');
-  }
-
-  function testAddOrderNoOrderClause()
-  {
-    $sql = new lmbSelectQuery("SELECT * FROM test \n%order%", $this->conn);
-
-    $sql->addOrder('t1');
-    $sql->addOrder('t2', 'DESC');
-
-    $this->assertEqual($sql->toString(),
-                       "SELECT * FROM test \nORDER BY t1 ASC,t2 DESC");
-  }
-
-  function testAddOrderWithOrderClause()
-  {
-    $sql = new lmbSelectQuery("SELECT * FROM test ORDER BY\n %order%", $this->conn);
-
-    $sql->addOrder('t1');
-    $sql->addOrder('t2', 'DESC');
-
-    $this->assertEqual($sql->toString(),
-                       "SELECT * FROM test ORDER BY\n t1 ASC,t2 DESC");
-  }
-
-  function testAddOrderWithOrderClause2()
-  {
-    $sql = new lmbSelectQuery("SELECT * FROM test ORDER BY t0 DESC\n %order%", $this->conn);
-
-    $sql->addOrder('t1');
-    $sql->addOrder('t2', 'DESC');
-
-    $this->assertEqual($sql->toString(),
-                       "SELECT * FROM test ORDER BY t0 DESC\n ,t1 ASC,t2 DESC");
-  }
-
-  function testAddOrderWithOrderClause3()
-  {
-    $sql = new lmbSelectQuery("SELECT * FROM test ORDER BY t0 DESC\n %order%", $this->conn);
-
-    $this->assertEqual($sql->toString(),
-                       'SELECT * FROM test ORDER BY t0 DESC');
-  }
-
-  function testNoGroupsAdded()
-  {
-    $sql = new lmbSelectQuery('SELECT * FROM test', $this->conn);
-
-    $this->assertEqual($sql->toString(),
-                       'SELECT * FROM test');
-  }
-
-  function testNoGroupsAdded2()
-  {
-    $sql = new lmbSelectQuery("SELECT * FROM test GROUP BY t0 \n%group%", $this->conn);
-
-    $this->assertEqual($sql->toString(),
-                       "SELECT * FROM test GROUP BY t0");
-  }
-
-  function testAddGroupBy()
-  {
-    $sql = new lmbSelectQuery('SELECT * FROM test %group%', $this->conn);
-
-    $sql->addGroupBy('t1');
-    $sql->addGroupBy('t2');
-
-    $this->assertEqual($sql->toString(),
-                       "SELECT * FROM test GROUP BY 't1','t2'");
-  }
-
-  function testAddGroupByWithGroupByClause()
-  {
-    $sql = new lmbSelectQuery("SELECT * FROM test GROUP BY \n%group%", $this->conn);
-
-    $sql->addGroupBy('t1');
-    $sql->addGroupBy('t2');
-
-    $this->assertEqual($sql->toString(),
-                       "SELECT * FROM test GROUP BY \n't1','t2'");
-  }
-
-  function testAddGroupByWithGroupByClause2()
-  {
-    $sql = new lmbSelectQuery("SELECT * FROM test GROUP BY t0 \n%group%", $this->conn);
-
-    $sql->addGroupBy('t1');
-    $sql->addGroupBy('t2');
-
-    $this->assertEqual($sql->toString(),
-                       "SELECT * FROM test GROUP BY t0 \n,'t1','t2'");
-  }
-
-  function testAddHavingNoGroupBy()
-  {
-    $sql = new lmbSelectQuery("SELECT * FROM test %having%", $this->conn);
-
-    $sql->addHaving(new lmbSQLRawCriteria('c1=:c1:'));
-
-    try
-    {
-      $sql->toString();
-      $this->assertTrue(false);
-    }
-    catch(lmbException $e){}
-  }
-
-  function testAddHaving()
-  {
-    $sql = new lmbSelectQuery("SELECT * FROM test GROUP BY id %having%", $this->conn);
-
-    $sql->addHaving(new lmbSQLRawCriteria('c1=:c1:'));
-    $sql->addHaving(new lmbSQLRawCriteria('c2=:c2:'));
-
-    $this->assertEqual($sql->toString(),
-                       "SELECT * FROM test GROUP BY id HAVING c1=:c1: AND c2=:c2:");
-  }
-
-  function testAddHavingToExistingHaving()
-  {
-    $sql = new lmbSelectQuery("SELECT * FROM test GROUP BY id HAVING id=1 %having%", $this->conn);
-
-    $sql->addHaving(new lmbSQLRawCriteria('c1=:c1:'));
-    $sql->addHaving(new lmbSQLRawCriteria('c2=:c2:'));
-
-    $this->assertEqual($sql->toString(),
-                       "SELECT * FROM test GROUP BY id HAVING id=1 AND c1=:c1: AND c2=:c2:");
-  }
-
-  function testAddHavingWithExistingOrder()
-  {
-    $sql = new lmbSelectQuery("SELECT * FROM test GROUP BY id HAVING id=1 %having% ORDER BY id", $this->conn);
-
-    $sql->addHaving(new lmbSQLRawCriteria('c1=:c1:'));
-    $sql->addHaving(new lmbSQLRawCriteria('c2=:c2:'));
-
-    $this->assertEqual($sql->toString(),
-                       "SELECT * FROM test GROUP BY id HAVING id=1 AND c1=:c1: AND c2=:c2: ORDER BY id");
-  }
-
-  function testGetStatement()
-  {
-    $conn = new MockConnection();
-    $stmt = new MockStatement();
-
-    $conn->expectOnce('newStatement');
-    $stmt->expectOnce('set', array('p0t_id', 5));
-    $conn->setReturnReference('newStatement', $stmt);
-
-    $sql = new lmbSelectQuery('SELECT * FROM test %where%', $conn);
-    $sql->addCriteria(new lmbSQLTableFieldCriteria('t.id', 5));
-
-    $sql->getStatement();
-  }
-}
-?>
+ */
+require_once('limb/dbal/tests/common.inc.php');
+lmb_require('limb/dbal/src/criteria/lmbSQLRawCriteria.class.php');
+lmb_require('limb/dbal/src/criteria/lmbSQLTableFieldCriteria.class.php');
+lmb_require('limb/dbal/src/query/lmbSelectQuery.class.php');
+lmb_require('limb/dbal/src/drivers/lmbDbConnection.interface.php');
+lmb_require('limb/dbal/src/drivers/lmbDbStatement.interface.php');
+
+Mock :: generate('lmbDbConnection', 'MockConnection');
+Mock :: generate('lmbDbStatement', 'MockStatement');
+
+class lmbSelectQueryTest extends UnitTestCase
+{
+  var $conn;
+
+  function setUp()
+  {
+    $this->conn = new ConnectionTestStub();
+  }
+
+  function testSelect()
+  {
+    $sql = new lmbSelectQuery('SELECT * FROM test', $this->conn);
+
+    $this->assertEqual($sql->toString(), 'SELECT * FROM test');
+  }
+
+  function testNoFields()
+  {
+    $sql = new lmbSelectQuery('SELECT %fields% FROM test', $this->conn);
+
+    $this->assertEqual($sql->toString(), 'SELECT * FROM test');
+  }
+
+  function testAddFieldWithFields()
+  {
+    $sql = new lmbSelectQuery("SELECT t3 \n%fields%,t4 FROM test", $this->conn);
+
+    $sql->addField('t1');
+    $sql->addField('t2');
+
+    $this->assertEqual($sql->toString(), "SELECT t3 \n,'t1','t2',t4 FROM test");
+  }
+
+  function testNoFieldsAdded()
+  {
+    $sql = new lmbSelectQuery("SELECT t3 \n%fields%,t4 FROM test", $this->conn);
+
+    $this->assertEqual($sql->toString(), "SELECT t3 \n,t4 FROM test");
+  }
+
+  function testAddFieldNoFields()
+  {
+    $sql = new lmbSelectQuery('SELECT %fields% FROM test', $this->conn);
+
+    $sql->addField('t1');
+    $sql->addField('t2');
+
+    $this->assertEqual($sql->toString(), "SELECT 't1','t2' FROM test");
+  }
+
+  function testAddFieldWithAlias()
+  {
+    $sql = new lmbSelectQuery('SELECT %fields% FROM test', $this->conn);
+
+    $sql->addField('t1', 'a1');
+    $sql->addField('t2', 'a2');
+
+    $this->assertEqual($sql->toString(), "SELECT 't1' as 'a1','t2' as 'a2' FROM test");
+  }
+
+  function testNoAddTable()
+  {
+    $sql = new lmbSelectQuery('SELECT * FROM test %tables%', $this->conn);
+
+    $this->assertEqual($sql->toString(), 'SELECT * FROM test');
+  }
+
+  function testAddTable()
+  {
+    $sql = new lmbSelectQuery("SELECT * FROM test \n\t%tables%", $this->conn);
+
+    $sql->addTable('test2');
+    $sql->addTable('test3');
+
+    $this->assertEqual($sql->toString(), "SELECT * FROM test \n\t,'test2','test3'");
+  }
+
+  function testAddTableWithAlias()
+  {
+    $sql = new lmbSelectQuery("SELECT * FROM test \n\t%tables%", $this->conn);
+
+    $sql->addTable('test2', 't2');
+    $sql->addTable('test3');
+
+    $this->assertEqual($sql->toString(), "SELECT * FROM test \n\t,'test2' 't2','test3'");
+  }
+
+  function testAddLeftJoin()
+  {
+    $sql = new lmbSelectQuery('SELECT * FROM test %left_join%', $this->conn);
+
+    $sql->addLeftJoin('article', array('test.article_id' => 'article.id'));
+
+    $this->assertEqual($sql->toString(),
+                       "SELECT * FROM test LEFT JOIN 'article' ON 'test.article_id'='article.id'");
+  }
+
+  function testEmptyCondition()
+  {
+    $sql = new lmbSelectQuery('SELECT * FROM test %where%', $this->conn);
+
+    $this->assertEqual($sql->toString(),
+                       'SELECT * FROM test');
+  }
+
+  function testAddCondition()
+  {
+    $sql = new lmbSelectQuery("SELECT * FROM test WHERE \n%where%", $this->conn);
+
+    $sql->addCriteria(new lmbSQLRawCriteria('c1=:c1:'));
+
+    $this->assertEqual($sql->toString(),
+                       "SELECT * FROM test WHERE \nc1=:c1:");
+  }
+
+  function testAddConditionNoWhereClause()
+  {
+    $sql = new lmbSelectQuery("SELECT * FROM test \n%where%", $this->conn);
+
+    $sql->addCriteria(new lmbSQLRawCriteria('c1=:c1:'));
+
+    $this->assertEqual($sql->toString(),
+                       "SELECT * FROM test \nWHERE c1=:c1:");
+  }
+
+  function testAddConditionNoHint()
+  {
+    $sql = new lmbSelectQuery("SELECT * FROM test WHERE 1=1", $this->conn);
+
+    $sql->addCriteria(new lmbSQLRawCriteria('c1=:c1:'));
+    $this->assertEqual($sql->toString(), "SELECT * FROM test WHERE 1=1");
+  }
+
+  function testAddSeveralConditions()
+  {
+    $sql = new lmbSelectQuery('SELECT * FROM test %where%', $this->conn);
+
+    $sql->addCriteria(new lmbSQLRawCriteria('c1=:c1:'));
+    $sql->addCriteria(new lmbSQLRawCriteria('c2=:c2:'));
+
+    $this->assertEqual($sql->toString(),
+                       'SELECT * FROM test WHERE c1=:c1: AND c2=:c2:');
+  }
+
+  function testAddConditionToExistingConditions()
+  {
+    $sql = new lmbSelectQuery("SELECT * FROM test WHERE t1=t1\n %where%", $this->conn);
+
+    $sql->addCriteria(new lmbSQLRawCriteria('c1=:c1:'));
+    $sql->addCriteria(new lmbSQLRawCriteria('c2=:c2:'));
+
+    $this->assertEqual($sql->toString(),
+                       "SELECT * FROM test WHERE t1=t1\n AND c1=:c1: AND c2=:c2:");
+  }
+
+  function testAddConditionToExistingConditionsWithOrder()
+  {
+    $sql = new lmbSelectQuery("SELECT * FROM test WHERE t1=t1\n\n %where% \n\tORDER BY t1", $this->conn);
+
+    $sql->addCriteria(new lmbSQLRawCriteria('c1=:c1:'));
+    $sql->addCriteria(new lmbSQLRawCriteria('c2=:c2:'));
+
+    $this->assertEqual($sql->toString(),
+                       "SELECT * FROM test WHERE t1=t1\n\n AND c1=:c1: AND c2=:c2: \n\tORDER BY t1");
+  }
+
+  function testAddConditionToExistingConditionsWithGroup()
+  {
+    $sql = new lmbSelectQuery("SELECT * FROM test WHERE t1=t1\n\n %where% \n\tGROUP BY t1", $this->conn);
+
+    $sql->addCriteria(new lmbSQLRawCriteria('c1=:c1:'));
+    $sql->addCriteria(new lmbSQLRawCriteria('c2=:c2:'));
+
+    $this->assertEqual($sql->toString(),
+                       "SELECT * FROM test WHERE t1=t1\n\n AND c1=:c1: AND c2=:c2: \n\tGROUP BY t1");
+  }
+
+  function testEmptyOrder()
+  {
+    $sql = new lmbSelectQuery("SELECT * FROM test \n%order%", $this->conn);
+
+    $this->assertEqual($sql->toString(),
+                       'SELECT * FROM test');
+  }
+
+  function testAddOrderNoOrderClause()
+  {
+    $sql = new lmbSelectQuery("SELECT * FROM test \n%order%", $this->conn);
+
+    $sql->addOrder('t1');
+    $sql->addOrder('t2', 'DESC');
+
+    $this->assertEqual($sql->toString(),
+                       "SELECT * FROM test \nORDER BY t1 ASC,t2 DESC");
+  }
+
+  function testAddOrderWithOrderClause()
+  {
+    $sql = new lmbSelectQuery("SELECT * FROM test ORDER BY\n %order%", $this->conn);
+
+    $sql->addOrder('t1');
+    $sql->addOrder('t2', 'DESC');
+
+    $this->assertEqual($sql->toString(),
+                       "SELECT * FROM test ORDER BY\n t1 ASC,t2 DESC");
+  }
+
+  function testAddOrderWithOrderClause2()
+  {
+    $sql = new lmbSelectQuery("SELECT * FROM test ORDER BY t0 DESC\n %order%", $this->conn);
+
+    $sql->addOrder('t1');
+    $sql->addOrder('t2', 'DESC');
+
+    $this->assertEqual($sql->toString(),
+                       "SELECT * FROM test ORDER BY t0 DESC\n ,t1 ASC,t2 DESC");
+  }
+
+  function testAddOrderWithOrderClause3()
+  {
+    $sql = new lmbSelectQuery("SELECT * FROM test ORDER BY t0 DESC\n %order%", $this->conn);
+
+    $this->assertEqual($sql->toString(),
+                       'SELECT * FROM test ORDER BY t0 DESC');
+  }
+
+  function testNoGroupsAdded()
+  {
+    $sql = new lmbSelectQuery('SELECT * FROM test', $this->conn);
+
+    $this->assertEqual($sql->toString(),
+                       'SELECT * FROM test');
+  }
+
+  function testNoGroupsAdded2()
+  {
+    $sql = new lmbSelectQuery("SELECT * FROM test GROUP BY t0 \n%group%", $this->conn);
+
+    $this->assertEqual($sql->toString(),
+                       "SELECT * FROM test GROUP BY t0");
+  }
+
+  function testAddGroupBy()
+  {
+    $sql = new lmbSelectQuery('SELECT * FROM test %group%', $this->conn);
+
+    $sql->addGroupBy('t1');
+    $sql->addGroupBy('t2');
+
+    $this->assertEqual($sql->toString(),
+                       "SELECT * FROM test GROUP BY 't1','t2'");
+  }
+
+  function testAddGroupByWithGroupByClause()
+  {
+    $sql = new lmbSelectQuery("SELECT * FROM test GROUP BY \n%group%", $this->conn);
+
+    $sql->addGroupBy('t1');
+    $sql->addGroupBy('t2');
+
+    $this->assertEqual($sql->toString(),
+                       "SELECT * FROM test GROUP BY \n't1','t2'");
+  }
+
+  function testAddGroupByWithGroupByClause2()
+  {
+    $sql = new lmbSelectQuery("SELECT * FROM test GROUP BY t0 \n%group%", $this->conn);
+
+    $sql->addGroupBy('t1');
+    $sql->addGroupBy('t2');
+
+    $this->assertEqual($sql->toString(),
+                       "SELECT * FROM test GROUP BY t0 \n,'t1','t2'");
+  }
+
+  function testAddHavingNoGroupBy()
+  {
+    $sql = new lmbSelectQuery("SELECT * FROM test %having%", $this->conn);
+
+    $sql->addHaving(new lmbSQLRawCriteria('c1=:c1:'));
+
+    try
+    {
+      $sql->toString();
+      $this->assertTrue(false);
+    }
+    catch(lmbException $e){}
+  }
+
+  function testAddHaving()
+  {
+    $sql = new lmbSelectQuery("SELECT * FROM test GROUP BY id %having%", $this->conn);
+
+    $sql->addHaving(new lmbSQLRawCriteria('c1=:c1:'));
+    $sql->addHaving(new lmbSQLRawCriteria('c2=:c2:'));
+
+    $this->assertEqual($sql->toString(),
+                       "SELECT * FROM test GROUP BY id HAVING c1=:c1: AND c2=:c2:");
+  }
+
+  function testAddHavingToExistingHaving()
+  {
+    $sql = new lmbSelectQuery("SELECT * FROM test GROUP BY id HAVING id=1 %having%", $this->conn);
+
+    $sql->addHaving(new lmbSQLRawCriteria('c1=:c1:'));
+    $sql->addHaving(new lmbSQLRawCriteria('c2=:c2:'));
+
+    $this->assertEqual($sql->toString(),
+                       "SELECT * FROM test GROUP BY id HAVING id=1 AND c1=:c1: AND c2=:c2:");
+  }
+
+  function testAddHavingWithExistingOrder()
+  {
+    $sql = new lmbSelectQuery("SELECT * FROM test GROUP BY id HAVING id=1 %having% ORDER BY id", $this->conn);
+
+    $sql->addHaving(new lmbSQLRawCriteria('c1=:c1:'));
+    $sql->addHaving(new lmbSQLRawCriteria('c2=:c2:'));
+
+    $this->assertEqual($sql->toString(),
+                       "SELECT * FROM test GROUP BY id HAVING id=1 AND c1=:c1: AND c2=:c2: ORDER BY id");
+  }
+
+  function testGetStatement()
+  {
+    $conn = new MockConnection();
+    $stmt = new MockStatement();
+
+    $conn->expectOnce('newStatement');
+    $stmt->expectOnce('set', array('p0t_id', 5));
+    $conn->setReturnReference('newStatement', $stmt);
+
+    $sql = new lmbSelectQuery('SELECT * FROM test %where%', $conn);
+    $sql->addCriteria(new lmbSQLTableFieldCriteria('t.id', 5));
+
+    $sql->getStatement();
+  }
+}
+?>



More information about the limb-svn mailing list