diff options
Diffstat (limited to 'tests/Components')
-rw-r--r-- | tests/Components/Array2DTest.php | 27 | ||||
-rw-r--r-- | tests/Components/Array2dTest.php | 64 | ||||
-rw-r--r-- | tests/Components/ExpressionArrayTest.php | 24 | ||||
-rw-r--r-- | tests/Components/ExpressionTest.php | 5 | ||||
-rw-r--r-- | tests/Components/FieldDefinitionTest.php | 38 | ||||
-rw-r--r-- | tests/Components/ParameterDefinitionTest.php | 22 |
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); + } +} |