summaryrefslogtreecommitdiffstats
path: root/tests/utils
diff options
context:
space:
mode:
Diffstat (limited to 'tests/utils')
-rw-r--r--tests/utils/MiscTest.php90
-rw-r--r--tests/utils/QueryTest.php269
-rw-r--r--tests/utils/RoutineTest.php196
-rw-r--r--tests/utils/TableTest.php181
4 files changed, 0 insertions, 736 deletions
diff --git a/tests/utils/MiscTest.php b/tests/utils/MiscTest.php
deleted file mode 100644
index d64673f..0000000
--- a/tests/utils/MiscTest.php
+++ /dev/null
@@ -1,90 +0,0 @@
-<?php
-
-namespace SqlParser\Tests\Utils;
-
-use SqlParser\Parser;
-use SqlParser\Utils\Misc;
-
-use SqlParser\Tests\TestCase;
-
-class MiscTest extends TestCase
-{
-
- /**
- * @dataProvider getAliasesProvider
- */
- public function testGetAliases($query, $db, array $expected)
- {
- $parser = new Parser($query);
- // print_r($parser->statements); exit;
- $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'
- )
- )
- )
- )
- )
- ),
- );
- }
-}
diff --git a/tests/utils/QueryTest.php b/tests/utils/QueryTest.php
deleted file mode 100644
index 7a2bbf4..0000000
--- a/tests/utils/QueryTest.php
+++ /dev/null
@@ -1,269 +0,0 @@
-<?php
-
-namespace SqlParser\Tests\Utils;
-
-use SqlParser\Parser;
-use SqlParser\Utils\Query;
-
-use SqlParser\Tests\TestCase;
-
-class QueryTest extends TestCase
-{
-
- /**
- * @dataProvider testGetFlagsProvider
- */
- public function testGetFlags($query, $expected)
- {
- $parser = new Parser($query);
- $this->assertEquals(
- $expected,
- Query::getFlags($parser->statements[0])
- );
- }
-
- public function testGetFlagsProvider()
- {
- return array(
- array(
- 'ALTER TABLE DROP col',
- array(
- 'reload' => true,
- 'querytype' => 'ALTER'
- )
- ),
- array(
- 'CALL test()',
- array(
- 'is_procedure' => true,
- 'querytype' => 'CALL'
- )
- ),
- array(
- 'CREATE TABLE tbl (id INT)',
- array(
- 'reload' => true,
- 'querytype' => 'CREATE'
- )
- ),
- array(
- 'CHECK TABLE tbl',
- array(
- 'is_maint' => true,
- 'querytype' => 'CHECK'
- )
- ),
- array(
- 'DELETE FROM tbl',
- array(
- 'is_affected' => true,
- 'is_delete' => true,
- 'querytype' => 'DELETE',
- ),
- ),
- array(
- 'DROP VIEW v',
- array(
- 'reload' => true,
- 'querytype' => 'DROP'
- )
- ),
- array(
- 'DROP DATABASE db',
- array(
- 'drop_database' => true,
- 'reload' => true,
- 'querytype' => 'DROP'
- )
- ),
- array(
- 'EXPLAIN tbl',
- array(
- 'is_explain' => true,
- 'querytype' => 'EXPLAIN'
- ),
- ),
- array(
- 'INSERT INTO tbl VALUES (1)',
- array(
- 'is_affected' => true,
- 'is_insert' => true,
- 'querytype' => 'INSERT'
- )
- ),
- array(
- 'REPLACE INTO tbl VALUES (2)',
- array(
- 'is_affected' => true,
- 'is_replace' => true,
- 'is_insert' => true,
- 'querytype' => 'REPLACE'
- )
- ),
- array(
- 'SELECT 1',
- array(
- 'is_select' => true,
- 'querytype' => 'SELECT'
- )
- ),
- array(
- 'SELECT * FROM tbl',
- array(
- 'is_select' => true,
- 'select_from' => true,
- 'querytype' => 'SELECT'
- )
- ),
- array(
- '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'
- )
- ),
- array(
- 'SELECT * FROM actor GROUP BY actor_id',
- array(
- 'is_group' => true,
- 'is_select' => true,
- 'select_from' => true,
- 'group' => true,
- 'querytype' => 'SELECT'
- )
- ),
- array(
- 'SELECT col1, col2 FROM table1 PROCEDURE ANALYSE(10, 2000);',
- array(
- 'is_analyse' => true,
- 'is_select' => true,
- 'select_from' => true,
- 'querytype' => 'SELECT'
- )
- ),
- array(
- 'SELECT * FROM tbl INTO OUTFILE "/tmp/export.txt"',
- array(
- 'is_export' => true,
- 'is_select' => true,
- 'select_from' => true,
- 'querytype' => 'SELECT'
- )
- ),
- array(
- 'SELECT COUNT(id), SUM(id) FROM tbl',
- array(
- 'is_count' => true,
- 'is_func' => true,
- 'is_select' => true,
- 'select_from' => true,
- 'querytype' => 'SELECT'
- )
- ),
- array(
- 'SELECT (SELECT "foo")',
- array(
- 'is_select' => true,
- 'is_subquery' => true,
- 'querytype' => 'SELECT'
- )
- ),
- array(
- 'SHOW CREATE TABLE tbl',
- array(
- 'is_show' => true,
- 'querytype' => 'SHOW'
- )
- ),
- array(
- 'UPDATE tbl SET id = 1',
- array(
- 'is_affected' => true,
- 'querytype' => 'UPDATE'
- )
- )
- );
- }
-
- public function testGetAll()
- {
- $query = 'SELECT *, actor.actor_id, sakila2.film.*
- FROM sakila2.city, sakila2.film, actor';
- $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', null),
- array('film', 'sakila2')
- )
- )
- ),
- 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()
- {
- $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',
- Query::replaceClause(
- $parser->statements[0],
- $parser->list,
- 'WHERE film_id > 0'
- )
- );
- }
-
- 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
- )
- );
- }
-
-}
diff --git a/tests/utils/RoutineTest.php b/tests/utils/RoutineTest.php
deleted file mode 100644
index 51f558f..0000000
--- a/tests/utils/RoutineTest.php
+++ /dev/null
@@ -1,196 +0,0 @@
-<?php
-
-namespace SqlParser\Tests\Utils;
-
-use SqlParser\Parser;
-use SqlParser\Utils\Routine;
-
-use SqlParser\Tests\TestCase;
-
-class RoutineTest extends TestCase
-{
-
- /**
- * @dataProvider getReturnTypeProvider
- */
- public function testGetReturnType($def, array $expected)
- {
- $this->assertEquals($expected, Routine::getReturnType($def));
- }
-
- public function getReturnTypeProvider()
- {
- return array(
- array('', array('', '', '', '', '')),
- array('TEXT', array('', '', 'TEXT', '', '')),
- array('INT(20)', array('', '', 'INT', '20', '')),
- array(
- 'INT UNSIGNED',
- array('', '', 'INT', '', 'UNSIGNED')
- ),
- array(
- 'VARCHAR(1) CHARSET utf8',
- array('', '', 'VARCHAR', '1', 'utf8')
- ),
- array(
- 'ENUM(\'a\', \'b\') CHARSET latin1',
- array('', '', 'ENUM', '\'a\',\'b\'', 'latin1')
- ),
- array(
- 'DECIMAL(5,2) UNSIGNED ZEROFILL',
- array('', '', 'DECIMAL', '5,2', 'UNSIGNED ZEROFILL')
- ),
- array(
- 'SET(\'test\'\'esc"\', \'more\\\'esc\')',
- array(
- '', '', 'SET', '\'test\'\'esc"\',\'more\\\'esc\'', ''
- )
- )
- );
- }
-
- /**
- * @dataProvider getParameterProvider
- */
- public function testGetParameter($def, array $expected)
- {
- $this->assertEquals($expected, Routine::getParameter($def));
- }
-
- public function getParameterProvider()
- {
- return array(
- array('', array('', '', '', '', '')),
- array('`foo` TEXT', array('', 'foo', 'TEXT', '', '')),
- array('`foo` INT(20)', array('', 'foo', 'INT', '20', '')),
- array(
- 'IN `fo``fo` INT UNSIGNED',
- array('IN', 'fo`fo', 'INT', '', 'UNSIGNED')
- ),
- array(
- 'OUT bar VARCHAR(1) CHARSET utf8',
- array('OUT', 'bar', 'VARCHAR', '1', 'utf8')
- ),
- array(
- '`"baz\'\'` ENUM(\'a\', \'b\') CHARSET latin1',
- array('', '"baz\'\'', 'ENUM', '\'a\',\'b\'', 'latin1')
- ),
- array(
- 'INOUT `foo` DECIMAL(5,2) UNSIGNED ZEROFILL',
- array('INOUT', 'foo', 'DECIMAL', '5,2', 'UNSIGNED ZEROFILL')
- ),
- array(
- '`foo``s func` SET(\'test\'\'esc"\', \'more\\\'esc\')',
- array(
- '', 'foo`s func', 'SET', '\'test\'\'esc"\',\'more\\\'esc\'', ''
- )
- )
- );
- }
-
- /**
- * @dataProvider getParametersProvider
- */
- public function testGetParameters($query, array $expected)
- {
- $parser = new Parser($query);
- $this->assertEquals($expected, Routine::getParameters($parser->statements[0]));
- }
-
- public function getParametersProvider()
- {
- return array(
- array(
- 'CREATE PROCEDURE `foo`() SET @A=0',
- array(
- 'num' => 0,
- 'dir' => array(),
- 'name' => array(),
- 'type' => array(),
- 'length' => array(),
- 'length_arr' => array(),
- 'opts' => array()
- )
- ),
- array(
- 'CREATE DEFINER=`user\\`@`somehost``(` FUNCTION `foo```(`baz` INT) BEGIN SELECT NULL; END',
- array(
- 'num' => 1,
- 'dir' => array(
- 0 => ''
- ),
- 'name' => array(
- 0 => 'baz'
- ),
- 'type' => array(
- 0 => 'INT'
- ),
- 'length' => array(
- 0 => ''
- ),
- 'length_arr' => array(
- 0 => array(),
- ),
- 'opts' => array(
- 0 => ''
- )
- )
- ),
- array(
- 'CREATE PROCEDURE `foo`(IN `baz\\)` INT(25) zerofill unsigned) BEGIN SELECT NULL; END',
- array(
- 'num' => 1,
- 'dir' => array(
- 0 => 'IN'
- ),
- 'name' => array(
- 0 => 'baz\\)'
- ),
- 'type' => array(
- 0 => 'INT'
- ),
- 'length' => array(
- 0 => '25'
- ),
- 'length_arr' => array(
- 0 => array('25'),
- ),
- 'opts' => array(
- 0 => 'UNSIGNED ZEROFILL'
- )
- )
- ),
- array(
- 'CREATE PROCEDURE `foo`(IN `baz\\` INT(001) zerofill, out bazz varchar(15) charset utf8) '.
- 'BEGIN SELECT NULL; END',
- array(
- 'num' => 2,
- 'dir' => array(
- 0 => 'IN',
- 1 => 'OUT'
- ),
- 'name' => array(
- 0 => 'baz\\',
- 1 => 'bazz'
- ),
- 'type' => array(
- 0 => 'INT',
- 1 => 'VARCHAR'
- ),
- 'length' => array(
- 0 => '1',
- 1 => '15'
- ),
- 'length_arr' => array(
- 0 => array('1'),
- 1 => array('15')
- ),
- 'opts' => array(
- 0 => 'ZEROFILL',
- 1 => 'utf8'
- )
- )
- ),
- );
- }
-}
diff --git a/tests/utils/TableTest.php b/tests/utils/TableTest.php
deleted file mode 100644
index bda6e78..0000000
--- a/tests/utils/TableTest.php
+++ /dev/null
@@ -1,181 +0,0 @@
-<?php
-
-namespace SqlParser\Tests\Utils;
-
-use SqlParser\Parser;
-use SqlParser\Utils\Table;
-
-use SqlParser\Tests\TestCase;
-
-class TableTest extends TestCase
-{
-
- /**
- * @dataProvider getForeignKeysProvider
- */
- public function testGetForeignKeys($query, array $expected)
- {
- $parser = new Parser($query);
- $this->assertEquals($expected, Table::getForeignKeys($parser->statements[0]));
- }
-
- public function getForeignKeysProvider()
- {
- return array(
- array(
- 'CREATE USER test',
- array(),
- ),
- array(
- 'CREATE TABLE `payment` (
- `payment_id` smallint(5) unsigned NOT NULL AUTO_INCREMENT,
- `customer_id` smallint(5) unsigned NOT NULL,
- `staff_id` tinyint(3) unsigned NOT NULL,
- `rental_id` int(11) DEFAULT NULL,
- `amount` decimal(5,2) NOT NULL,
- `payment_date` datetime NOT NULL,
- `last_update` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
- PRIMARY KEY (`payment_id`),
- KEY `idx_fk_staff_id` (`staff_id`),
- KEY `idx_fk_customer_id` (`customer_id`),
- KEY `fk_payment_rental` (`rental_id`),
- CONSTRAINT `fk_payment_customer` FOREIGN KEY (`customer_id`) REFERENCES `customer` (`customer_id`) ON UPDATE CASCADE,
- CONSTRAINT `fk_payment_rental` FOREIGN KEY (`rental_id`) REFERENCES `rental` (`rental_id`) ON DELETE SET NULL ON UPDATE CASCADE,
- CONSTRAINT `fk_payment_staff` FOREIGN KEY (`staff_id`) REFERENCES `staff` (`staff_id`) ON UPDATE CASCADE
- ) ENGINE=InnoDB AUTO_INCREMENT=16050 DEFAULT CHARSET=utf8',
- array(
- array(
- 'constraint' => 'fk_payment_customer',
- 'index_list' => array('customer_id'),
- 'ref_table_name' => 'customer',
- 'ref_index_list' => array('customer_id'),
- 'on_update' => 'CASCADE',
- ),
- array(
- 'constraint' => 'fk_payment_rental',
- 'index_list' => array('rental_id'),
- 'ref_table_name' => 'rental',
- 'ref_index_list' => array('rental_id'),
- 'on_delete' => 'SET_NULL',
- 'on_update' => 'CASCADE',
- ),
- array(
- 'constraint' => 'fk_payment_staff',
- 'index_list' => array('staff_id'),
- 'ref_table_name' => 'staff',
- 'ref_index_list' => array('staff_id'),
- 'on_update' => 'CASCADE',
- ),
- ),
- ),
- array(
- 'CREATE TABLE `actor` (
- `actor_id` smallint(5) unsigned NOT NULL AUTO_INCREMENT,
- `first_name` varchar(45) NOT NULL,
- `last_name` varchar(45) NOT NULL,
- `last_update` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
- PRIMARY KEY (`actor_id`),
- KEY `idx_actor_last_name` (`last_name`)
- ) ENGINE=InnoDB AUTO_INCREMENT=201 DEFAULT CHARSET=utf8',
- array(),
- ),
- array(
- 'CREATE TABLE `address` (
- `address_id` smallint(5) unsigned NOT NULL AUTO_INCREMENT,
- `address` varchar(50) NOT NULL,
- `address2` varchar(50) DEFAULT NULL,
- `district` varchar(20) NOT NULL,
- `city_id` smallint(5) unsigned NOT NULL,
- `postal_code` varchar(10) DEFAULT NULL,
- `phone` varchar(20) NOT NULL,
- `last_update` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
- PRIMARY KEY (`address_id`),
- KEY `idx_fk_city_id` (`city_id`),
- CONSTRAINT `fk_address_city` FOREIGN KEY (`city_id`) REFERENCES `city` (`city_id`) ON UPDATE CASCADE
- ) ENGINE=InnoDB AUTO_INCREMENT=606 DEFAULT CHARSET=utf8',
- array(
- array(
- 'constraint' => 'fk_address_city',
- 'index_list' => array('city_id'),
- 'ref_table_name' => 'city',
- 'ref_index_list' => array('city_id'),
- 'on_update' => 'CASCADE',
- ),
- ),
- ),
- );
- }
-
- /**
- * @dataProvider getFieldsProvider
- */
- public function testGetFields($query, array $expected)
- {
- $parser = new Parser($query);
- $this->assertEquals($expected, Table::getFields($parser->statements[0]));
- }
-
- public function getFieldsProvider()
- {
- return array(
- array(
- 'CREATE USER test',
- array(),
- ),
- array(
- 'CREATE TABLE `address` (
- `address_id` smallint(5) unsigned NOT NULL AUTO_INCREMENT,
- `address` varchar(50) NOT NULL,
- `address2` varchar(50) DEFAULT NULL,
- `district` varchar(20) NOT NULL,
- `city_id` smallint(5) unsigned NOT NULL,
- `postal_code` varchar(10) DEFAULT NULL,
- `phone` varchar(20) NOT NULL,
- `last_update` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
- PRIMARY KEY (`address_id`),
- KEY `idx_fk_city_id` (`city_id`),
- CONSTRAINT `fk_address_city` FOREIGN KEY (`city_id`) REFERENCES `city` (`city_id`) ON UPDATE CASCADE
- ) ENGINE=InnoDB AUTO_INCREMENT=606 DEFAULT CHARSET=utf8',
- array(
- 'address_id' => array(
- 'type' => 'SMALLINT',
- 'timestamp_not_null' => null,
- ),
- 'address' => array(
- 'type' => 'VARCHAR',
- 'timestamp_not_null' => null,
- ),
- 'address2' => array(
- 'type' => 'VARCHAR',
- 'timestamp_not_null' => null,
- 'default_value' => 'NULL',
- ),
- 'district' => array(
- 'type' => 'VARCHAR',
- 'timestamp_not_null' => null,
- ),
- 'city_id' => array(
- 'type' => 'SMALLINT',
- 'timestamp_not_null' => null,
- ),
- 'postal_code' => array(
- 'type' => 'VARCHAR',
- 'timestamp_not_null' => null,
- 'default_value' => 'NULL',
- ),
- 'phone' => array(
- 'type' => 'VARCHAR',
- 'timestamp_not_null' => null,
- ),
- 'last_update' => array(
- 'type' => 'TIMESTAMP',
- 'timestamp_not_null' => true,
- 'default_value' => 'CURRENT_TIMESTAMP',
- 'default_current_timestamp' => true,
- 'on_update_current_timestamp' => true
- )
- )
- ),
- );
- }
-}