summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to 'test')
-rw-r--r--test/QueryBuilderTest.php72
-rwxr-xr-xtest/test_queries.php2
2 files changed, 74 insertions, 0 deletions
diff --git a/test/QueryBuilderTest.php b/test/QueryBuilderTest.php
index 8e2ef32..52cf0c2 100644
--- a/test/QueryBuilderTest.php
+++ b/test/QueryBuilderTest.php
@@ -226,6 +226,78 @@ class QueryBuilderTest extends PHPUnit_Framework_TestCase {
$this->assertEquals($expected, ORM::get_last_query());
}
+ public function testWhereNull() {
+ ORM::for_table('widget')->where_null('name')->find_many();
+ $expected = "SELECT * FROM `widget` WHERE `name` IS NULL";
+ $this->assertEquals($expected, ORM::get_last_query());
+ }
+
+ public function testWhereNotNull() {
+ ORM::for_table('widget')->where_not_null('name')->find_many();
+ $expected = "SELECT * FROM `widget` WHERE `name` IS NOT NULL";
+ $this->assertEquals($expected, ORM::get_last_query());
+ }
+
+ public function testRawWhereClause() {
+ ORM::for_table('widget')->where_raw('`name` = ? AND (`age` = ? OR `age` = ?)', array('Fred', 5, 10))->find_many();
+ $expected = "SELECT * FROM `widget` WHERE `name` = 'Fred' AND (`age` = '5' OR `age` = '10')";
+ $this->assertEquals($expected, ORM::get_last_query());
+ }
+
+ public function testRawWhereClauseWithPercentSign() {
+ ORM::for_table('widget')->where_raw('STRFTIME("%Y", "now") = ?', array(2012))->find_many();
+ $expected = "SELECT * FROM `widget` WHERE STRFTIME(\"%Y\", \"now\") = '2012'";
+ $this->assertEquals($expected, ORM::get_last_query());
+ }
+
+ public function testRawWhereClauseWithNoParameters() {
+ ORM::for_table('widget')->where_raw('`name` = "Fred"')->find_many();
+ $expected = "SELECT * FROM `widget` WHERE `name` = \"Fred\"";
+ $this->assertEquals($expected, ORM::get_last_query());
+ }
+
+ public function testRawWhereClauseInMethodChain() {
+ ORM::for_table('widget')->where('age', 18)->where_raw('(`name` = ? OR `name` = ?)', array('Fred', 'Bob'))->where('size', 'large')->find_many();
+ $expected = "SELECT * FROM `widget` WHERE `age` = '18' AND (`name` = 'Fred' OR `name` = 'Bob') AND `size` = 'large'";
+ $this->assertEquals($expected, ORM::get_last_query());
+ }
+
+ public function testRawQuery() {
+ ORM::for_table('widget')->raw_query('SELECT `w`.* FROM `widget` w')->find_many();
+ $expected = "SELECT `w`.* FROM `widget` w";
+ $this->assertEquals($expected, ORM::get_last_query());
+ }
+
+ public function testRawQueryWithParameters() {
+ ORM::for_table('widget')->raw_query('SELECT `w`.* FROM `widget` w WHERE `name` = ? AND `age` = ?', array('Fred', 5))->find_many();
+ $expected = "SELECT `w`.* FROM `widget` w WHERE `name` = 'Fred' AND `age` = '5'";
+ $this->assertEquals($expected, ORM::get_last_query());
+ }
+
+ public function testSimpleResultColumn() {
+ ORM::for_table('widget')->select('name')->find_many();
+ $expected = "SELECT `name` FROM `widget`";
+ $this->assertEquals($expected, ORM::get_last_query());
+ }
+
+ public function testMultipleSimpleResultColumns() {
+ ORM::for_table('widget')->select('name')->select('age')->find_many();
+ $expected = "SELECT `name`, `age` FROM `widget`";
+ $this->assertEquals($expected, ORM::get_last_query());
+ }
+
+ public function testSpecifyTableNameAndColumnInResultColumns() {
+ ORM::for_table('widget')->select('widget.name')->find_many();
+ $expected = "SELECT `widget`.`name` FROM `widget`";
+ $this->assertEquals($expected, ORM::get_last_query());
+ }
+
+ public function testAliasesInResultColumns() {
+ ORM::for_table('widget')->select('widget.name', 'widget_name')->find_many();
+ $expected = "SELECT `widget`.`name` AS `widget_name` FROM `widget`";
+ $this->assertEquals($expected, ORM::get_last_query());
+ }
+
public function testCount() {
ORM::for_table('widget')->count();
$expected = "SELECT COUNT(*) AS `count` FROM `widget` LIMIT 1";
diff --git a/test/test_queries.php b/test/test_queries.php
index 7af954c..e3f0067 100755
--- a/test/test_queries.php
+++ b/test/test_queries.php
@@ -227,6 +227,8 @@
$expected = "SELECT `widget`.`name` AS `widget_name` FROM `widget`";
Tester::check_equal_query("Aliases in result columns", $expected);
+ /////@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
+
ORM::for_table('widget')->select_expr('COUNT(*)', 'count')->find_many();
$expected = "SELECT COUNT(*) AS `count` FROM `widget`";
Tester::check_equal_query("Literal expression in result columns", $expected);