summaryrefslogtreecommitdiffstats
path: root/tests/Builder/CreateStatementTest.php
diff options
context:
space:
mode:
Diffstat (limited to 'tests/Builder/CreateStatementTest.php')
-rw-r--r--tests/Builder/CreateStatementTest.php60
1 files changed, 60 insertions, 0 deletions
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()
+ );
+ }
+}