summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/utils/QueryTest.php43
1 files changed, 41 insertions, 2 deletions
diff --git a/tests/utils/QueryTest.php b/tests/utils/QueryTest.php
index 82a8a84..7a2bbf4 100644
--- a/tests/utils/QueryTest.php
+++ b/tests/utils/QueryTest.php
@@ -116,11 +116,13 @@ class QueryTest extends TestCase
)
),
array(
- 'SELECT DISTINCT * FROM tbl',
+ 'SELECT DISTINCT * FROM tbl LIMIT 0, 10 ORDER BY id',
array(
'distinct' => true,
'is_select' => true,
'select_from' => true,
+ 'limit' => true,
+ 'order' => true,
'querytype' => 'SELECT'
)
),
@@ -207,6 +209,24 @@ class QueryTest extends TestCase
),
Query::getAll($query)
);
+
+ $query = 'SELECT * FROM sakila.actor, film';
+ $parser = new Parser($query);
+ $this->assertEquals(
+ array_merge(
+ Query::getFlags($parser->statements[0], true),
+ array(
+ 'parser' => $parser,
+ 'statement' => $parser->statements[0],
+ 'select_expr' => array('*'),
+ 'select_tables' => array(
+ array('actor', 'sakila'),
+ array('film', null)
+ )
+ )
+ ),
+ Query::getAll($query)
+ );
}
public function testGetAllEmpty()
@@ -214,11 +234,16 @@ class QueryTest extends TestCase
$this->assertEquals(array(), Query::getAll(''));
}
+ public function testGetClauseType()
+ {
+ $this->assertEquals('LIMIT', Query::getClauseType(' LIMIT 0, 10 '));
+ }
+
public function testReplaceClause()
{
$parser = new Parser('SELECT *, (SELECT 1) FROM film LIMIT 0, 10');
$this->assertEquals(
- 'SELECT *, (SELECT 1) FROM film WHERE film_id > 0 LIMIT 0, 10',
+ 'SELECT *, (SELECT 1) FROM film WHERE film_id > 0 LIMIT 0, 10',
Query::replaceClause(
$parser->statements[0],
$parser->list,
@@ -227,4 +252,18 @@ class QueryTest extends TestCase
);
}
+ public function testReplaceClauseOnlyKeyword()
+ {
+ $parser = new Parser('SELECT *, (SELECT 1) FROM film LIMIT 0, 10');
+ $this->assertEquals(
+ ' SELECT SQL_CALC_FOUND_ROWS *, (SELECT 1) FROM film LIMIT 0, 10',
+ Query::replaceClause(
+ $parser->statements[0],
+ $parser->list,
+ 'SELECT SQL_CALC_FOUND_ROWS',
+ true
+ )
+ );
+ }
+
}