diff options
Diffstat (limited to 'tests/Builder')
-rw-r--r-- | tests/Builder/AlterStatementTest.php | 28 | ||||
-rw-r--r-- | tests/Builder/CreateStatementTest.php | 60 | ||||
-rw-r--r-- | tests/Builder/ExplainStatement.php | 24 | ||||
-rw-r--r-- | tests/Builder/StatementTest.php | 5 |
4 files changed, 114 insertions, 3 deletions
diff --git a/tests/Builder/AlterStatementTest.php b/tests/Builder/AlterStatementTest.php new file mode 100644 index 0000000..2fa735d --- /dev/null +++ b/tests/Builder/AlterStatementTest.php @@ -0,0 +1,28 @@ +<?php + +namespace SqlParser\Tests\Builder; + +use SqlParser\Parser; + +use SqlParser\Tests\TestCase; + +class AlterStatementTest extends TestCase +{ + + public function testBuilderView() + { + $query = 'ALTER TABLE `actor` ' . + 'ADD PRIMARY KEY (`actor_id`), ' . + 'ADD KEY `idx_actor_last_name` (`last_name`);'; + + $parser = new Parser($query); + $stmt = $parser->statements[0]; + + $this->assertEquals( + 'ALTER TABLE `actor` ' . + 'ADD PRIMARY KEY (`actor_id`), ' . + 'ADD KEY `idx_actor_last_name` (`last_name`)', + $stmt->build() + ); + } +} diff --git a/tests/Builder/CreateStatementTest.php b/tests/Builder/CreateStatementTest.php new file mode 100644 index 0000000..6434c87 --- /dev/null +++ b/tests/Builder/CreateStatementTest.php @@ -0,0 +1,60 @@ +<?php + +namespace SqlParser\Tests\Builder; + +use SqlParser\Parser; +use SqlParser\Fragments\DataTypeFragment; +use SqlParser\Fragments\FieldFragment; +use SqlParser\Fragments\FieldDefFragment; +use SqlParser\Fragments\KeyFragment; +use SqlParser\Fragments\OptionsFragment; +use SqlParser\Statements\CreateStatement; + +use SqlParser\Tests\TestCase; + +class CreateStatementTest extends TestCase +{ + + public function testBuilderTable() + { + $stmt = new CreateStatement(); + + $stmt->name = new FieldFragment('', 'test', ''); + $stmt->options = new OptionsFragment(array('TABLE')); + $stmt->fields = array( + new FieldDefFragment( + 'id', + new OptionsFragment(array('NOT NULL', 'AUTO_INCREMENT')), + new DataTypeFragment('INT', array(11), new OptionsFragment(array('UNSIGNED'))) + ), + new FieldDefFragment( + '', + null, + new KeyFragment('', array('id'), 'PRIMARY KEY') + ) + ); + + $this->assertEquals( + 'CREATE TABLE `test` (' . + '`id` INT (11) UNSIGNED NOT NULL AUTO_INCREMENT, ' . + 'PRIMARY KEY (`id`)' . + ') ', + $stmt->build() + ); + } + + public function testBuilderView() + { + $query = 'CREATE VIEW myView (vid, vfirstname) AS ' . + 'SELECT id, first_name FROM employee WHERE id = 1'; + + $parser = new Parser($query); + $stmt = $parser->statements[0]; + + $this->assertEquals( + 'CREATE VIEW myView (vid, vfirstname) AS ' . + 'SELECT id, first_name FROM employee WHERE id = 1 ', + $stmt->build() + ); + } +} diff --git a/tests/Builder/ExplainStatement.php b/tests/Builder/ExplainStatement.php new file mode 100644 index 0000000..1a44f44 --- /dev/null +++ b/tests/Builder/ExplainStatement.php @@ -0,0 +1,24 @@ +<?php + +namespace SqlParser\Tests\Builder; + +use SqlParser\Parser; + +use SqlParser\Tests\TestCase; + +class ExplainStatementTest extends TestCase +{ + + public function testBuilderView() + { + $query = 'EXPLAIN SELECT * FROM test;'; + + $parser = new Parser($query); + $stmt = $parser->statements[0]; + + $this->assertEquals( + ' EXPLAIN SELECT * FROM test', + $stmt->build() + ); + } +} diff --git a/tests/Builder/StatementTest.php b/tests/Builder/StatementTest.php index 0a65aac..29163d1 100644 --- a/tests/Builder/StatementTest.php +++ b/tests/Builder/StatementTest.php @@ -2,7 +2,6 @@ namespace SqlParser\Tests\Builder; -use SqlParser\Builder; use SqlParser\Fragments\OptionsFragment; use SqlParser\Fragments\FieldFragment; use SqlParser\Fragments\WhereKeyword; @@ -33,8 +32,8 @@ class StatementTest extends TestCase $stmt->limit = new LimitKeyword(1, 10); $this->assertEquals( - 'SELECT DISTINCT sakila.film.film_id AS fid, COUNT(film_id) ' . - 'FROM film, actor ' . + 'SELECT DISTINCT `sakila`.`film`.`film_id` AS `fid`, COUNT(film_id) ' . + 'FROM `film`, `actor` ' . 'WHERE film_id > 10 OR actor.age > 25 ' . 'LIMIT 10, 1 ', $stmt->build() |