summaryrefslogtreecommitdiffstats
path: root/tests/Builder
diff options
context:
space:
mode:
Diffstat (limited to 'tests/Builder')
-rw-r--r--tests/Builder/AlterStatementTest.php28
-rw-r--r--tests/Builder/CreateStatementTest.php60
-rw-r--r--tests/Builder/ExplainStatement.php24
-rw-r--r--tests/Builder/StatementTest.php5
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()