summaryrefslogtreecommitdiffstats
path: root/tests/Utils/QueryTest.php
diff options
context:
space:
mode:
authorDan Ungureanu <udan1107@gmail.com>2015-08-05 11:49:39 +0300
committerDan Ungureanu <udan1107@gmail.com>2015-08-05 11:49:39 +0300
commitc4f7b223db8229970b92063f800e160de6c5d359 (patch)
tree75968346af37640e9ef082c4dd7f9166d6e319f7 /tests/Utils/QueryTest.php
parent9130cca0d17169b4647d39b644cc6483b600623c (diff)
downloadsql-parser-c4f7b223db8229970b92063f800e160de6c5d359.zip
sql-parser-c4f7b223db8229970b92063f800e160de6c5d359.tar.gz
sql-parser-c4f7b223db8229970b92063f800e160de6c5d359.tar.bz2
Fixed a bug that didn't parse comments properly.
getFirstStatement util doesn't ignore MySQL specific query anymore (between comments). Misc coding style fixes. Fixed tests.
Diffstat (limited to 'tests/Utils/QueryTest.php')
-rw-r--r--tests/Utils/QueryTest.php41
1 files changed, 40 insertions, 1 deletions
diff --git a/tests/Utils/QueryTest.php b/tests/Utils/QueryTest.php
index 8dd2323..833469e 100644
--- a/tests/Utils/QueryTest.php
+++ b/tests/Utils/QueryTest.php
@@ -359,7 +359,7 @@ class QueryTest extends TestCase
$parser = new Parser(
'SELECT c.city_id, c.country_id ' .
'FROM `city` ' .
- 'WHERE city_id < 1 ' .
+ 'WHERE city_id < 1 /* test */' .
'ORDER BY city_id ASC ' .
'LIMIT 0, 1 ' .
'INTO OUTFILE "/dev/null"'
@@ -458,4 +458,43 @@ class QueryTest extends TestCase
)
);
}
+
+ public function testGetFirstStatement()
+ {
+ $query = 'USE saki';
+ $delimiter = null;
+ list($statement, $query, $delimiter) =
+ Query::getFirstStatement($query, $delimiter);
+ $this->assertEquals(null, $statement);
+ $this->assertEquals('USE saki', $query);
+
+ $query = 'USE sakila; ' .
+ '/*test comment*/' .
+ 'SELECT * FROM actor; '.
+ 'DELIMITER $$ ' .
+ 'UPDATE actor SET last_name = "abc"$$' .
+ '/*!SELECT * FROM actor WHERE last_name = "abc"*/$$';
+ $delimiter = null;
+
+ list($statement, $query, $delimiter) =
+ Query::getFirstStatement($query, $delimiter);
+ $this->assertEquals('USE sakila;', $statement);
+
+ list($statement, $query, $delimiter) =
+ Query::getFirstStatement($query, $delimiter);
+ $this->assertEquals('SELECT * FROM actor;', $statement);
+
+ list($statement, $query, $delimiter) =
+ Query::getFirstStatement($query, $delimiter);
+ $this->assertEquals('DELIMITER $$', $statement);
+ $this->assertEquals('$$', $delimiter);
+
+ list($statement, $query, $delimiter) =
+ Query::getFirstStatement($query, $delimiter);
+ $this->assertEquals('UPDATE actor SET last_name = "abc"$$', $statement);
+
+ list($statement, $query, $delimiter) =
+ Query::getFirstStatement($query, $delimiter);
+ $this->assertEquals('/*!SELECT * FROM actor WHERE last_name = "abc"*/$$', $statement);
+ }
}