summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorLuis Ramón López <[email protected]>2014-05-18 20:23:41 +0200
committerLuis Ramón López <[email protected]>2014-05-18 20:42:50 +0200
commitdb071216909799fcc781f9257065f7411214c169 (patch)
tree9fea50ecdee04524c388bc3ceb2b92108f43f1af /test
parent3f86f09173e4acf0443018121207cffb0e4fe6c7 (diff)
where_id_in() for selecting multiple records by primary key
Diffstat (limited to 'test')
-rw-r--r--test/QueryBuilderTest.php15
1 files changed, 15 insertions, 0 deletions
diff --git a/test/QueryBuilderTest.php b/test/QueryBuilderTest.php
index 3400fb6..6e4fff3 100644
--- a/test/QueryBuilderTest.php
+++ b/test/QueryBuilderTest.php
@@ -40,6 +40,12 @@ class QueryBuilderTest extends PHPUnit_Framework_TestCase {
$this->assertEquals($expected, ORM::get_last_query());
}
+ public function testWhereIdIn() {
+ ORM::for_table('widget')->where_id_in(array(4, 5))->find_many();
+ $expected = "SELECT * FROM `widget` WHERE `id` IN ('4', '5')";
+ $this->assertEquals($expected, ORM::get_last_query());
+ }
+
public function testSingleWhereClause() {
ORM::for_table('widget')->where('name', 'Fred')->find_one();
$expected = "SELECT * FROM `widget` WHERE `name` = 'Fred' LIMIT 1";
@@ -617,6 +623,15 @@ class QueryBuilderTest extends PHPUnit_Framework_TestCase {
$this->assertEquals($expected, ORM::get_last_query());
}
+ public function testWhereIdInWithCompoundPrimaryKey() {
+ $record = ORM::for_table('widget')->use_id_column(array('id1', 'id2'));
+ $record->where_id_in(array(
+ array('id1' => 10, 'name' => 'Joe', 'id2' => 20),
+ array('id1' => 20, 'name' => 'Joe', 'id2' => 30)))->find_many();
+ $expected = "SELECT * FROM `widget` WHERE (( `id1` = '10' AND `id2` = '20' ) OR ( `id1` = '20' AND `id2` = '30' ))";
+ $this->assertEquals($expected, ORM::get_last_query());
+ }
+
/**
* Regression tests
*/