diff options
author | Volker Thiel <riker09@gmx.de> | 2013-03-12 13:46:13 +0100 |
---|---|---|
committer | Volker Thiel <riker09@gmx.de> | 2013-03-12 13:46:13 +0100 |
commit | 3eafbc10c01224aaf839da92b4686042d4ae7959 (patch) | |
tree | 88521d5508ed4a31601b139d60e638c7fe845909 /tests | |
parent | 763a79a04e9ee5efbc24c0c335e77a86cacb02be (diff) | |
parent | ad55b3a52e532aea7f4ff52ea173744ada45f8ca (diff) | |
download | PHPixie-3eafbc10c01224aaf839da92b4686042d4ae7959.zip PHPixie-3eafbc10c01224aaf839da92b4686042d4ae7959.tar.gz PHPixie-3eafbc10c01224aaf839da92b4686042d4ae7959.tar.bz2 |
Merged upstream fixes
Diffstat (limited to 'tests')
-rw-r--r-- | tests/modules/database/driver/pdo/queryTest.php | 52 |
1 files changed, 51 insertions, 1 deletions
diff --git a/tests/modules/database/driver/pdo/queryTest.php b/tests/modules/database/driver/pdo/queryTest.php index 591b029..158a0f7 100644 --- a/tests/modules/database/driver/pdo/queryTest.php +++ b/tests/modules/database/driver/pdo/queryTest.php @@ -204,5 +204,55 @@ class Query_PDO_DriverTest extends PHPUnit_Framework_TestCase } $this->assertEquals(true,$except); } - + + public function testUnion() + { + $stub=(object)array('db_type'=>'mysql'); + $subquery = new Query_PDO_Driver($stub, 'select'); + $subquery->table('fairies'); + $this->object->table('fairies'); + $this->object->where('id', '>', 7); + $this->object->union($subquery); + $this->object->union($subquery); + $this->assertEquals('(SELECT * FROM `fairies` WHERE `fairies`.`id` > ? ) UNION ALL (SELECT * FROM `fairies` ) UNION ALL (SELECT * FROM `fairies` ) ',current($this->object->query())); + } + + public function testSubselect() + { + $stub=(object)array('db_type'=>'mysql'); + $subquery = new Query_PDO_Driver($stub, 'select'); + $subquery->fields('id')->table('fairies'); + $this->object->table('fairies')->where('id', 7)->where('id', 'in', $subquery); + $this->assertEquals('SELECT * FROM `fairies` WHERE `fairies`.`id` = ? AND `fairies`.`id` in (SELECT `fairies`.`id` FROM `fairies` ) ',current($this->object->query())); + } + + public function testSubtable() + { + $stub=(object)array('db_type'=>'mysql'); + $subquery = new Query_PDO_Driver($stub, 'select'); + $subquery->fields('id')->table('fairies'); + $this->object->table($subquery)->where('id', 7); + $this->assertEquals('SELECT * FROM (SELECT `fairies`.`id` FROM `fairies` ) AS a0 WHERE `a0`.`id` = ? ',current($this->object->query())); + } + + public function testJoinSubtable() + { + $stub=(object)array('db_type'=>'mysql'); + $subquery = new Query_PDO_Driver($stub, 'select'); + $subquery->table('fairies'); + $this->object->table($subquery); + $this->object->join('pixies', array('fairies.id', '=', 'pixie.id')); + $this->object->join(array('fairies', 'fae'), array('fairies.id', '=', 'fae.id')); + $this->object->join(array($subquery, 'fae2'), array('fairies.id', '=', 'fae2.id')); + + + $this->assertEquals('SELECT * FROM (SELECT * FROM `fairies` ) AS a0 LEFT JOIN `pixies` ON `fairies`.`id` = `pixie`.`id` LEFT JOIN `fairies` AS fae ON `fairies`.`id` = `fae`.`id` LEFT JOIN (SELECT * FROM `fairies` ) AS fae2 ON `fairies`.`id` = `fae2`.`id` ',current($this->object->query())); + } + + public function testExpressionSelect() + { + $this->object->table('fairies')->where('id','in',DB::expr("(SELECT id from fairies)")); + $this->assertEquals('SELECT * FROM `fairies` WHERE `fairies`.`id` in (SELECT id from fairies) ',current($this->object->query())); + } + } |