summaryrefslogtreecommitdiffstats
path: root/tests/Components
diff options
context:
space:
mode:
Diffstat (limited to 'tests/Components')
-rw-r--r--tests/Components/Array2DTest.php27
-rw-r--r--tests/Components/Array2dTest.php64
-rw-r--r--tests/Components/ExpressionArrayTest.php24
-rw-r--r--tests/Components/ExpressionTest.php5
-rw-r--r--tests/Components/FieldDefinitionTest.php38
-rw-r--r--tests/Components/ParameterDefinitionTest.php22
6 files changed, 153 insertions, 27 deletions
diff --git a/tests/Components/Array2DTest.php b/tests/Components/Array2DTest.php
deleted file mode 100644
index bb646df..0000000
--- a/tests/Components/Array2DTest.php
+++ /dev/null
@@ -1,27 +0,0 @@
-<?php
-
-namespace SqlParser\Tests\Components;
-
-use SqlParser\Parser;
-use SqlParser\Components\Array2d;
-
-use SqlParser\Tests\TestCase;
-
-class Array2dTest extends TestCase
-{
-
- public function testParseErr1()
- {
- $parser = new Parser();
- Array2d::parse($parser, $this->getTokensList('(1, 2 +'));
- // TODO: Assert errors.
- }
-
- public function testParseErr2()
- {
- $parser = new Parser();
- Array2d::parse($parser, $this->getTokensList('(1, 2 TABLE'));
- // TODO: Assert errors.
- }
-
-}
diff --git a/tests/Components/Array2dTest.php b/tests/Components/Array2dTest.php
new file mode 100644
index 0000000..5ec9d7e
--- /dev/null
+++ b/tests/Components/Array2dTest.php
@@ -0,0 +1,64 @@
+<?php
+
+namespace SqlParser\Tests\Components;
+
+use SqlParser\Parser;
+use SqlParser\Components\Array2d;
+
+use SqlParser\Tests\TestCase;
+
+class Array2dTest extends TestCase
+{
+
+ public function testParse()
+ {
+ $parser = new Parser();
+ $arrays = Array2d::parse($parser, $this->getTokensList('(1, 2) +'));
+ $this->assertEquals(
+ array(1, 2),
+ $arrays[0]->values
+ );
+ }
+
+ public function testParseErr1()
+ {
+ $parser = new Parser();
+ Array2d::parse($parser, $this->getTokensList('(1, 2 +'));
+ // TODO: Assert errors.
+ }
+
+ public function testParseErr2()
+ {
+ $parser = new Parser();
+ Array2d::parse($parser, $this->getTokensList('(1, 2 TABLE'));
+ }
+
+ public function testParseErr3()
+ {
+ $parser = new Parser();
+ Array2d::parse($parser, $this->getTokensList(')'));
+ Array2d::parse($parser, $this->getTokensList('TABLE'));
+ // TODO: Assert errors.
+ }
+
+ public function testParseErr4()
+ {
+ $parser = new Parser();
+ Array2d::parse($parser, $this->getTokensList('(1, 2),'));
+ $this->assertEquals(
+ "Expected open bracket followed by a set of values.",
+ $parser->errors[0]->getMessage()
+ );
+ }
+
+ public function testParseErr5()
+ {
+ $parser = new Parser();
+ Array2d::parse($parser, $this->getTokensList('(1, 2),(3)'));
+ $this->assertEquals(
+ "Expected 2 values, found 1.",
+ $parser->errors[0]->getMessage()
+ );
+ }
+
+}
diff --git a/tests/Components/ExpressionArrayTest.php b/tests/Components/ExpressionArrayTest.php
new file mode 100644
index 0000000..ea772e3
--- /dev/null
+++ b/tests/Components/ExpressionArrayTest.php
@@ -0,0 +1,24 @@
+<?php
+
+namespace SqlParser\Tests\Components;
+
+use SqlParser\Parser;
+use SqlParser\Components\ExpressionArray;
+
+use SqlParser\Tests\TestCase;
+
+class ExpressionArrayTest extends TestCase
+{
+
+ public function testParse()
+ {
+ $component = ExpressionArray::parse(
+ new Parser(),
+ $this->getTokensList('(expr)'),
+ array(
+ 'noBrackets' => true,
+ )
+ );
+ $this->assertEquals(array(), $component);
+ }
+}
diff --git a/tests/Components/ExpressionTest.php b/tests/Components/ExpressionTest.php
index ecf5149..c5e10a4 100644
--- a/tests/Components/ExpressionTest.php
+++ b/tests/Components/ExpressionTest.php
@@ -16,6 +16,11 @@ class ExpressionTest extends TestCase
$this->assertEquals($component->expr, 'IF(film_id > 0, film_id, film_id)');
}
+ public function testParse2()
+ {
+ $component = Expression::parse(new Parser(), $this->getTokensList('col`test`'));
+ }
+
public function testParseErr1()
{
$parser = new Parser();
diff --git a/tests/Components/FieldDefinitionTest.php b/tests/Components/FieldDefinitionTest.php
new file mode 100644
index 0000000..11cac32
--- /dev/null
+++ b/tests/Components/FieldDefinitionTest.php
@@ -0,0 +1,38 @@
+<?php
+
+namespace SqlParser\Tests\Components;
+
+use SqlParser\Parser;
+use SqlParser\Components\FieldDefinition;
+
+use SqlParser\Tests\TestCase;
+
+class FieldDefinitionTest extends TestCase
+{
+
+ public function testParse()
+ {
+ $component = FieldDefinition::parse(
+ new Parser(),
+ $this->getTokensList('(str TEXT, FULLTEXT INDEX indx (str)')
+ );
+ $this->assertEquals('str', $component[0]->name);
+ $this->assertEquals('FULLTEXT INDEX', $component[1]->key->type);
+ $this->assertEquals('indx', $component[1]->key->name);
+ $this->assertEquals('FULLTEXT INDEX `indx` (`str`)', $component[1]);
+ }
+
+ public function testBuild() {
+ $parser = new Parser(
+ 'CREATE TABLE `payment` (' .
+ '-- snippet' . "\n" .
+ '`customer_id` smallint(5) unsigned NOT NULL,' .
+ 'CONSTRAINT `fk_payment_customer` FOREIGN KEY (`customer_id`) REFERENCES `customer` (`customer_id`) ON UPDATE CASCADE,' .
+ ') ENGINE=InnoDB")'
+ );
+ $this->assertEquals(
+ 'CONSTRAINT `fk_payment_customer` FOREIGN KEY (`customer_id`) REFERENCES `customer` (`customer_id`) ON UPDATE CASCADE',
+ FieldDefinition::build($parser->statements[0]->fields[1])
+ );
+ }
+}
diff --git a/tests/Components/ParameterDefinitionTest.php b/tests/Components/ParameterDefinitionTest.php
new file mode 100644
index 0000000..d4fe505
--- /dev/null
+++ b/tests/Components/ParameterDefinitionTest.php
@@ -0,0 +1,22 @@
+<?php
+
+namespace SqlParser\Tests\Components;
+
+use SqlParser\Parser;
+use SqlParser\Components\ParameterDefinition;
+
+use SqlParser\Tests\TestCase;
+
+class ParameterDefinitionTest extends TestCase
+{
+
+ public function testParse()
+ {
+ $component = ParameterDefinition::parse(
+ new Parser(),
+ $this->getTokensList('(a INT, b INT')
+ );
+ $this->assertEquals('a', $component[0]->name);
+ $this->assertEquals('b', $component[1]->name);
+ }
+}