diff options
-rw-r--r-- | test/QueryBuilderTest.php | 42 | ||||
-rwxr-xr-x | test/test_queries.php | 3 |
2 files changed, 44 insertions, 1 deletions
diff --git a/test/QueryBuilderTest.php b/test/QueryBuilderTest.php index bb4ba06..8e2ef32 100644 --- a/test/QueryBuilderTest.php +++ b/test/QueryBuilderTest.php @@ -184,6 +184,48 @@ class QueryBuilderTest extends PHPUnit_Framework_TestCase { $this->assertEquals($expected, ORM::get_last_query()); } + public function testHavingLessThanOrEqualAndGreaterThanOrEqual() { + ORM::for_table('widget')->group_by('name')->having_lte('age', 10)->having_gte('age', 5)->find_many(); + $expected = "SELECT * FROM `widget` GROUP BY `name` HAVING `age` <= '10' AND `age` >= '5'"; + $this->assertEquals($expected, ORM::get_last_query()); + } + + public function testHavingNull() { + ORM::for_table('widget')->group_by('name')->having_null('name')->find_many(); + $expected = "SELECT * FROM `widget` GROUP BY `name` HAVING `name` IS NULL"; + $this->assertEquals($expected, ORM::get_last_query()); + } + + public function testHavingNotNull() { + ORM::for_table('widget')->group_by('name')->having_not_null('name')->find_many(); + $expected = "SELECT * FROM `widget` GROUP BY `name` HAVING `name` IS NOT NULL"; + $this->assertEquals($expected, ORM::get_last_query()); + } + + public function testRawHaving() { + ORM::for_table('widget')->group_by('name')->having_raw('`name` = ? AND (`age` = ? OR `age` = ?)', array('Fred', 5, 10))->find_many(); + $expected = "SELECT * FROM `widget` GROUP BY `name` HAVING `name` = 'Fred' AND (`age` = '5' OR `age` = '10')"; + $this->assertEquals($expected, ORM::get_last_query()); + } + + public function testComplexQuery() { + ORM::for_table('widget')->where('name', 'Fred')->limit(5)->offset(5)->order_by_asc('name')->find_many(); + $expected = "SELECT * FROM `widget` WHERE `name` = 'Fred' ORDER BY `name` ASC LIMIT 5 OFFSET 5"; + $this->assertEquals($expected, ORM::get_last_query()); + } + + public function testWhereLessThanAndGreaterThan() { + ORM::for_table('widget')->where_lt('age', 10)->where_gt('age', 5)->find_many(); + $expected = "SELECT * FROM `widget` WHERE `age` < '10' AND `age` > '5'"; + $this->assertEquals($expected, ORM::get_last_query()); + } + + public function testWhereLessThanAndEqualAndGreaterThanAndEqual() { + ORM::for_table('widget')->where_lte('age', 10)->where_gte('age', 5)->find_many(); + $expected = "SELECT * FROM `widget` WHERE `age` <= '10' AND `age` >= '5'"; + $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 db78ffe..14adf9b 100755 --- a/test/test_queries.php +++ b/test/test_queries.php @@ -148,7 +148,6 @@ $expected = "SELECT * FROM `widget` GROUP BY `name` HAVING `age` < '10' AND `age` > '5'"; Tester::check_equal("HAVING less than and greater than", $expected); - /////////////////////////////////////////// ORM::for_table('widget')->group_by('name')->having_lte('age', 10)->having_gte('age', 5)->find_many(); $expected = "SELECT * FROM `widget` GROUP BY `name` HAVING `age` <= '10' AND `age` >= '5'"; @@ -178,6 +177,8 @@ $expected = "SELECT * FROM `widget` WHERE `age` <= '10' AND `age` >= '5'"; Tester::check_equal("Less than or equal and greater than or equal", $expected); + /////////////////////////////////////////// + ORM::for_table('widget')->where_null('name')->find_many(); $expected = "SELECT * FROM `widget` WHERE `name` IS NULL"; Tester::check_equal("where_null method", $expected); |