summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorVolker Thiel <riker09@gmx.de>2013-03-12 13:46:13 +0100
committerVolker Thiel <riker09@gmx.de>2013-03-12 13:46:13 +0100
commit3eafbc10c01224aaf839da92b4686042d4ae7959 (patch)
tree88521d5508ed4a31601b139d60e638c7fe845909 /tests
parent763a79a04e9ee5efbc24c0c335e77a86cacb02be (diff)
parentad55b3a52e532aea7f4ff52ea173744ada45f8ca (diff)
downloadPHPixie-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.php52
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()));
+ }
+
}