diff options
author | Dan Ungureanu <udan1107@gmail.com> | 2015-09-30 20:03:57 +0300 |
---|---|---|
committer | Dan Ungureanu <udan1107@gmail.com> | 2015-09-30 20:03:57 +0300 |
commit | 3d1f0e8faf94aa806ea1e78a81fffe133b72c8e4 (patch) | |
tree | 813066e6f9aba035ad29f2ceed62f14525f5a629 /tests/Utils/TokensTest.php | |
parent | 72033029ceeefb63138db10ce9df176f693fb2c4 (diff) | |
download | sql-parser-3d1f0e8faf94aa806ea1e78a81fffe133b72c8e4.zip sql-parser-3d1f0e8faf94aa806ea1e78a81fffe133b72c8e4.tar.gz sql-parser-3d1f0e8faf94aa806ea1e78a81fffe133b72c8e4.tar.bz2 |
Added utilities for handling tokens and tokens list.v2.1.0
Diffstat (limited to 'tests/Utils/TokensTest.php')
-rw-r--r-- | tests/Utils/TokensTest.php | 106 |
1 files changed, 106 insertions, 0 deletions
diff --git a/tests/Utils/TokensTest.php b/tests/Utils/TokensTest.php new file mode 100644 index 0000000..9ddbe5c --- /dev/null +++ b/tests/Utils/TokensTest.php @@ -0,0 +1,106 @@ +<?php + +namespace SqlParser\Tests\Utils; + +use SqlParser\Parser; +use SqlParser\Token; +use SqlParser\Utils\Tokens; + +use SqlParser\Tests\TestCase; + +class TokensTest extends TestCase +{ + + /** + * @dataProvider replaceTokensProvider + */ + public function testReplaceTokens($list, $find, $replace, $expected) + { + $this->assertEquals($expected, Tokens::replaceTokens($list, $find, $replace)); + } + + public function replaceTokensProvider() + { + return array( + array( + 'SELECT * FROM /*x*/a/*c*/.b', + array( + array('value_str' => 'a'), + array('token' => '.'), + ), + array( + new Token('c'), + new Token('.'), + ), + 'SELECT * FROM /*x*/c.b', + ) + ); + } + + /** + * @dataProvider matchProvider + */ + public function testMatch($token, $pattern, $expected) + { + $this->assertEquals($expected, Tokens::match($token, $pattern)); + } + + public function matchProvider() + { + return array( + array(new Token(''), array(), true), + + array( + new Token('"abc"', Token::TYPE_STRING, Token::FLAG_STRING_DOUBLE_QUOTES), + array('token' => '"abc"'), + true + ), + array( + new Token('"abc""', Token::TYPE_STRING, Token::FLAG_STRING_DOUBLE_QUOTES), + array('value' => 'abc'), + true + ), + array( + new Token('"abc""', Token::TYPE_STRING, Token::FLAG_STRING_DOUBLE_QUOTES), + array('value_str' => 'ABC'), + true + ), + array( + new Token('"abc""', Token::TYPE_STRING, Token::FLAG_STRING_DOUBLE_QUOTES), + array('type' => Token::TYPE_STRING), + true + ), + array( + new Token('"abc""', Token::TYPE_STRING, Token::FLAG_STRING_DOUBLE_QUOTES), + array('flags' => Token::FLAG_STRING_DOUBLE_QUOTES), + true + ), + + array( + new Token('"abc"', Token::TYPE_STRING, Token::FLAG_STRING_DOUBLE_QUOTES), + array('token' => '"abcd"'), + false + ), + array( + new Token('"abc""', Token::TYPE_STRING, Token::FLAG_STRING_DOUBLE_QUOTES), + array('value' => 'abcd'), + false + ), + array( + new Token('"abc""', Token::TYPE_STRING, Token::FLAG_STRING_DOUBLE_QUOTES), + array('value_str' => 'ABCd'), + false + ), + array( + new Token('"abc""', Token::TYPE_STRING, Token::FLAG_STRING_DOUBLE_QUOTES), + array('type' => Token::TYPE_NUMBER), + false + ), + array( + new Token('"abc""', Token::TYPE_STRING, Token::FLAG_STRING_DOUBLE_QUOTES), + array('flags' => Token::FLAG_STRING_SINGLE_QUOTES), + false + ), + ); + } +} |