summaryrefslogtreecommitdiffstats
path: root/tests/Utils/QueryTest.php
diff options
context:
space:
mode:
authorDeven Bansod <devenbansod.bits@gmail.com>2019-03-12 22:38:13 +0530
committerDeven Bansod <devenbansod.bits@gmail.com>2019-03-12 22:54:40 +0530
commit1d8f85c695ad3777e403eefdcf0f59fcba207b78 (patch)
tree657548b58221ac9c0eed78112363db3f74ec8747 /tests/Utils/QueryTest.php
parenta404e855c90692efea8e9e77004be56fc0d7c8e2 (diff)
downloadsql-parser-1d8f85c695ad3777e403eefdcf0f59fcba207b78.zip
sql-parser-1d8f85c695ad3777e403eefdcf0f59fcba207b78.tar.gz
sql-parser-1d8f85c695ad3777e403eefdcf0f59fcba207b78.tar.bz2
fix: incorrect lastClauseIdx in Util::getQuery
Diffstat (limited to 'tests/Utils/QueryTest.php')
-rw-r--r--tests/Utils/QueryTest.php87
1 files changed, 86 insertions, 1 deletions
diff --git a/tests/Utils/QueryTest.php b/tests/Utils/QueryTest.php
index 578a8c8..5c0cc55 100644
--- a/tests/Utils/QueryTest.php
+++ b/tests/Utils/QueryTest.php
@@ -452,6 +452,7 @@ class QueryTest extends TestCase
public function testGetClause()
{
+ /* Assertion 1 */
$parser = new Parser(
'SELECT c.city_id, c.country_id ' .
'FROM `city` ' .
@@ -461,12 +462,96 @@ class QueryTest extends TestCase
'INTO OUTFILE "/dev/null"'
);
$this->assertEquals(
+ '0, 1 INTO OUTFILE "/dev/null"',
+ Query::getClause(
+ $parser->statements[0],
+ $parser->list,
+ 'LIMIT',
+ 0
+ )
+ );
+ // Assert it returns all clauses between FROM and LIMIT
+ $this->assertEquals(
'WHERE city_id < 1 ORDER BY city_id ASC',
Query::getClause(
$parser->statements[0],
$parser->list,
+ 'FROM',
+ 'LIMIT'
+ )
+ );
+ // Assert it returns all clauses between SELECT and LIMIT
+ $this->assertEquals(
+ 'FROM `city` WHERE city_id < 1 ORDER BY city_id ASC',
+ Query::getClause(
+ $parser->statements[0],
+ $parser->list,
'LIMIT',
- 'FROM'
+ 'SELECT'
+ )
+ );
+
+ /* Assertion 2 */
+ $parser = new Parser(
+ 'DELETE FROM `renewal` ' .
+ 'WHERE number = "1DB" AND actionDate <= CURRENT_DATE() ' .
+ 'ORDER BY id ASC ' .
+ 'LIMIT 1'
+ );
+ $this->assertEquals(
+ 'number = "1DB" AND actionDate <= CURRENT_DATE()',
+ Query::getClause(
+ $parser->statements[0],
+ $parser->list,
+ 'WHERE'
+ )
+ );
+ $this->assertEquals(
+ '1',
+ Query::getClause(
+ $parser->statements[0],
+ $parser->list,
+ 'LIMIT'
+ )
+ );
+ $this->assertEquals(
+ 'id ASC',
+ Query::getClause(
+ $parser->statements[0],
+ $parser->list,
+ 'ORDER BY'
+ )
+ );
+
+ /* Assertion 3 */
+ $parser = new Parser(
+ 'UPDATE `renewal` SET `some_column` = 1 ' .
+ 'WHERE number = "1DB" AND actionDate <= CURRENT_DATE() ' .
+ 'ORDER BY id ASC ' .
+ 'LIMIT 1'
+ );
+ $this->assertEquals(
+ 'number = "1DB" AND actionDate <= CURRENT_DATE()',
+ Query::getClause(
+ $parser->statements[0],
+ $parser->list,
+ 'WHERE'
+ )
+ );
+ $this->assertEquals(
+ '1',
+ Query::getClause(
+ $parser->statements[0],
+ $parser->list,
+ 'LIMIT'
+ )
+ );
+ $this->assertEquals(
+ 'id ASC',
+ Query::getClause(
+ $parser->statements[0],
+ $parser->list,
+ 'ORDER BY'
)
);
}