summaryrefslogtreecommitdiffstats
path: root/tests/Utils/TokensTest.php
diff options
context:
space:
mode:
authorDan Ungureanu <udan1107@gmail.com>2015-09-30 20:03:57 +0300
committerDan Ungureanu <udan1107@gmail.com>2015-09-30 20:03:57 +0300
commit3d1f0e8faf94aa806ea1e78a81fffe133b72c8e4 (patch)
tree813066e6f9aba035ad29f2ceed62f14525f5a629 /tests/Utils/TokensTest.php
parent72033029ceeefb63138db10ce9df176f693fb2c4 (diff)
downloadsql-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.php106
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
+ ),
+ );
+ }
+}