From e057ab7d77eea55a7baeed86e61c449c00923188 Mon Sep 17 00:00:00 2001 From: zYne Date: Sun, 24 Jun 2007 21:05:56 +0000 Subject: [PATCH] added driver tests for Doctrine_Query --- tests/Query/DriverTestCase.php | 104 +++++++++++++++++++++++++++++++++ 1 file changed, 104 insertions(+) create mode 100644 tests/Query/DriverTestCase.php diff --git a/tests/Query/DriverTestCase.php b/tests/Query/DriverTestCase.php new file mode 100644 index 000000000..0a08c7b42 --- /dev/null +++ b/tests/Query/DriverTestCase.php @@ -0,0 +1,104 @@ +. + */ + +/** + * Doctrine_Query_Driver_TestCase + * + * @package Doctrine + * @author Konsta Vesterinen + * @license http://www.opensource.org/licenses/lgpl-license.php LGPL + * @category Object Relational Mapping + * @link www.phpdoctrine.com + * @since 1.0 + * @version $Revision$ + */ +class Doctrine_Query_Driver_TestCase extends Doctrine_UnitTestCase +{ + public function prepareData() + { } + public function prepareTables() + { } + + public function testLimitQueriesForPgsql() + { + $this->dbh = new Doctrine_Adapter_Mock('pgsql'); + + $conn = $this->manager->openConnection($this->dbh); + + $q = new Doctrine_Query($conn); + + $q->from('User u')->limit(5); + + $this->assertEqual($q->getSql(), 'SELECT e.id AS e__id, e.name AS e__name, e.loginname AS e__loginname, e.password AS e__password, e.type AS e__type, e.created AS e__created, e.updated AS e__updated, e.email_id AS e__email_id FROM entity e WHERE (e.type = 0) LIMIT 5'); + } + + public function testLimitQueriesForSqlite() + { + $this->dbh = new Doctrine_Adapter_Mock('sqlite'); + + $conn = $this->manager->openConnection($this->dbh); + + $q = new Doctrine_Query($conn); + + $q->from('User u')->limit(5); + + $this->assertEqual($q->getSql(), 'SELECT e.id AS e__id, e.name AS e__name, e.loginname AS e__loginname, e.password AS e__password, e.type AS e__type, e.created AS e__created, e.updated AS e__updated, e.email_id AS e__email_id FROM entity e WHERE (e.type = 0) LIMIT 5'); + } + + public function testLimitQueriesForMysql() + { + $this->dbh = new Doctrine_Adapter_Mock('mysql'); + + $conn = $this->manager->openConnection($this->dbh); + + $q = new Doctrine_Query($conn); + + $q->from('User u')->limit(5); + + $this->assertEqual($q->getSql(), 'SELECT e.id AS e__id, e.name AS e__name, e.loginname AS e__loginname, e.password AS e__password, e.type AS e__type, e.created AS e__created, e.updated AS e__updated, e.email_id AS e__email_id FROM entity e WHERE (e.type = 0) LIMIT 5'); + } + + public function testLimitQueriesForOracle() + { + $this->dbh = new Doctrine_Adapter_Mock('oracle'); + + $conn = $this->manager->openConnection($this->dbh); + + $q = new Doctrine_Query($conn); + + $q->from('User u')->limit(5); + + $this->assertEqual($q->getSql(), 'SELECT a.* FROM (SELECT e.id AS e__id, e.name AS e__name, e.loginname AS e__loginname, e.password AS e__password, e.type AS e__type, e.created AS e__created, e.updated AS e__updated, e.email_id AS e__email_id FROM entity e WHERE (e.type = 0)) a WHERE ROWNUM <= 5'); + } + + public function testLimitOffsetQueriesForOracle() + { + $this->dbh = new Doctrine_Adapter_Mock('oracle'); + + $conn = $this->manager->openConnection($this->dbh); + + $q = new Doctrine_Query($conn); + + $q->from('User u')->limit(5)->offset(2); + + $this->assertEqual($q->getSql(), 'SELECT * FROM (SELECT a.*, ROWNUM dctrn_rownum FROM (SELECT e.id AS e__id, e.name AS e__name, e.loginname AS e__loginname, e.password AS e__password, e.type AS e__type, e.created AS e__created, e.updated AS e__updated, e.email_id AS e__email_id FROM entity e WHERE (e.type = 0)) a WHERE ROWNUM <= 7) WHERE dctrn_rownum >= 3'); + } +}