diff options
author | Dan Ungureanu <udan1107@gmail.com> | 2015-06-12 20:09:54 +0300 |
---|---|---|
committer | Dan Ungureanu <udan1107@gmail.com> | 2015-06-12 20:09:54 +0300 |
commit | f9bafd808b5780ec6c185fc705d506139e70ac4a (patch) | |
tree | 6444dabee79cd9e7a193da481fa5b2eda6df5811 /tests/utils/MiscTest.php | |
parent | 4bee88f8bdde1aaf87b6125c2defc238472c5e02 (diff) | |
download | sql-parser-f9bafd808b5780ec6c185fc705d506139e70ac4a.zip sql-parser-f9bafd808b5780ec6c185fc705d506139e70ac4a.tar.gz sql-parser-f9bafd808b5780ec6c185fc705d506139e70ac4a.tar.bz2 |
Added method that extracts aliases map.
Improved field parser.
Support for joins.
Added tests.
Minor documentation fix.
Diffstat (limited to 'tests/utils/MiscTest.php')
-rw-r--r-- | tests/utils/MiscTest.php | 86 |
1 files changed, 86 insertions, 0 deletions
diff --git a/tests/utils/MiscTest.php b/tests/utils/MiscTest.php new file mode 100644 index 0000000..a1f5194 --- /dev/null +++ b/tests/utils/MiscTest.php @@ -0,0 +1,86 @@ +<?php + +use SqlParser\Parser; +use SqlParser\Utils\Misc; + +class MiscTest extends TestCase +{ + + /** + * @dataProvider getAliasesProvider + */ + public function testGetAliases($query, $db, array $expected) + { + $parser = new Parser($query); + $this->assertEquals($expected, Misc::getAliases($parser->statements[0], $db)); + } + + public function getAliasesProvider() + { + return array( + array( + 'select i.name as `n`,abcdef gh from qwerty i', + 'mydb', + array( + 'mydb' => array( + 'alias' => null, + 'tables' => array( + 'qwerty' => array( + 'alias' => 'i', + 'columns' => array( + 'name' => 'n', + 'abcdef' => 'gh' + ) + ) + ) + ) + ) + ), + array( + 'select film_id id,title from film', + 'sakila', + array( + 'sakila' => array( + 'alias' => null, + 'tables' => array( + 'film' => array( + 'alias' => null, + 'columns' => array( + 'film_id' => 'id' + ) + ) + ) + ) + ) + ), + array( + 'select `sakila`.`A`.`actor_id` as aid,`F`.`film_id` `fid`,' + . 'last_update updated from `sakila`.actor A join `film_actor` as ' + . '`F` on F.actor_id = A.`actor_id`', + 'sakila', + array( + 'sakila' => array( + 'alias' => null, + 'tables' => array( + 'film_actor' => array( + 'alias' => 'F', + 'columns' => array( + 'film_id' => 'fid', + 'last_update' => 'updated' + ) + ), + 'actor' => array( + 'alias'=> 'A', + 'columns' => array( + 'actor_id' => 'aid', + 'last_update' => 'updated' + ) + ) + ) + ) + ) + ), + ); + } + +} |