diff options
Diffstat (limited to 'tests/Builder')
-rw-r--r-- | tests/Builder/DeleteStatementTest.php | 90 | ||||
-rw-r--r-- | tests/Builder/SelectStatementTest.php | 2 |
2 files changed, 91 insertions, 1 deletions
diff --git a/tests/Builder/DeleteStatementTest.php b/tests/Builder/DeleteStatementTest.php new file mode 100644 index 0000000..a7500f0 --- /dev/null +++ b/tests/Builder/DeleteStatementTest.php @@ -0,0 +1,90 @@ +<?php + +namespace SqlParser\Tests\Builder; + +use SqlParser\Parser; + +use SqlParser\Tests\TestCase; + +class DeleteStatementTest extends TestCase +{ + + public function testBuilderSingleTable() + { + /* Assertion 1 */ + $query = 'DELETE IGNORE FROM t1'; + + $parser = new Parser($query); + $stmt = $parser->statements[0]; + + $this->assertEquals($query, $stmt->build()); + + /* Assertion 2 */ + $query = 'DELETE IGNORE FROM t1 WHERE 1=1'; + + $parser = new Parser($query); + $stmt = $parser->statements[0]; + + $this->assertEquals($query, $stmt->build()); + + /* Assertion 3 */ + $query = 'DELETE IGNORE FROM t1 WHERE 1=1 ORDER BY id ASC'; + + $parser = new Parser($query); + $stmt = $parser->statements[0]; + + $this->assertEquals($query, $stmt->build()); + + /* Assertion 4 */ + $query = 'DELETE IGNORE FROM t1 WHERE 1=1 ORDER BY id ASC LIMIT 0, 25'; + + $parser = new Parser($query); + $stmt = $parser->statements[0]; + + $this->assertEquals($query, $stmt->build()); + + /* Assertion 5 */ + $query = 'DELETE IGNORE FROM t1'; + + $parser = new Parser($query); + $stmt = $parser->statements[0]; + + $this->assertEquals($query, $stmt->build()); + + /* Assertion 6 */ + $query = 'DELETE LOW_PRIORITY FROM `test`.users ' + . 'WHERE `id`<3 AND (username="Dan" OR username="Paul") ORDER BY id ASC'; + + $parser = new Parser($query); + $stmt = $parser->statements[0]; + + $this->assertEquals($query, $stmt->build()); + } + + public function testBuilderMultiTable() + { + /* Assertion 1 */ + $query = 'DELETE QUICK table1, table2.* FROM table1 AS `t1`, table2 AS `t2`'; + + $parser = new Parser($query); + $stmt = $parser->statements[0]; + + $this->assertEquals($query, $stmt->build()); + + /* Assertion 2 */ + $query = 'DELETE QUICK table1, table2.* FROM table1 AS `t1`, table2 AS `t2` WHERE 1=1'; + + $parser = new Parser($query); + $stmt = $parser->statements[0]; + + $this->assertEquals($query, $stmt->build()); + + /* Assertion 3 */ + $query = 'DELETE QUICK FROM table1, table2.* USING table1 AS `t1`, table2 AS `t2` WHERE 1=1'; + + $parser = new Parser($query); + $stmt = $parser->statements[0]; + + $this->assertEquals($query, $stmt->build()); + } +} diff --git a/tests/Builder/SelectStatementTest.php b/tests/Builder/SelectStatementTest.php index 492d212..6f09888 100644 --- a/tests/Builder/SelectStatementTest.php +++ b/tests/Builder/SelectStatementTest.php @@ -49,7 +49,7 @@ class SelectStatementTest extends TestCase 'SELECT sgu.id, sgu.email_address FROM `sf_guard_user` AS `sgu` ' . 'RIGHT JOIN `student_course_booking` AS `scb` ON sgu.id = scb.user_id ' . 'WHERE `has_found_course` = \'1\' GROUP BY sgu.id ASC ' - . 'ORDER BY scb.id DESC LIMIT 300 ', + . 'ORDER BY scb.id DESC LIMIT 0, 300 ', $stmt->build() ); } |