diff options
Diffstat (limited to 'tests/Lexer')
-rw-r--r-- | tests/Lexer/ContextTest.php | 25 | ||||
-rw-r--r-- | tests/Lexer/IsMethodsTest.php | 9 | ||||
-rw-r--r-- | tests/Lexer/TokensListTest.php (renamed from tests/Lexer/TokensList.php) | 39 |
3 files changed, 48 insertions, 25 deletions
diff --git a/tests/Lexer/ContextTest.php b/tests/Lexer/ContextTest.php index b630d03..50e500a 100644 --- a/tests/Lexer/ContextTest.php +++ b/tests/Lexer/ContextTest.php @@ -36,4 +36,29 @@ class ContextTest extends TestCase { Context::load('Foo'); } + + public function testMode() + { + Context::setMode('REAL_AS_FLOAT,ANSI_QUOTES,IGNORE_SPACE'); + $this->assertEquals( + Context::REAL_AS_FLOAT | Context::ANSI_QUOTES | Context::IGNORE_SPACE, + Context::$MODE + ); + Context::setMode(); + $this->assertEquals(0, Context::$MODE); + } + + public function testEscape() + { + Context::setMode('ANSI_QUOTES'); + $this->assertEquals('"test"', Context::escape('test')); + + Context::setMode(); + $this->assertEquals('`test`', Context::escape('test')); + + $this->assertEquals( + array('`a`', '`b`'), + Context::escape(array('a', 'b')) + ); + } } diff --git a/tests/Lexer/IsMethodsTest.php b/tests/Lexer/IsMethodsTest.php index dfd065d..a817e65 100644 --- a/tests/Lexer/IsMethodsTest.php +++ b/tests/Lexer/IsMethodsTest.php @@ -17,13 +17,16 @@ class IsMethodsTest extends TestCase $this->assertEquals(1 | Token::FLAG_KEYWORD_RESERVED, Context::isKeyword('DISTINCT')); $this->assertEquals( - 1 | Token::FLAG_KEYWORD_COMPOSED | Token::FLAG_KEYWORD_KEY, + 1 | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED | Token::FLAG_KEYWORD_KEY, Context::isKeyword('PRIMARY KEY') ); - $this->assertEquals(1 | Token::FLAG_KEYWORD_COMPOSED, Context::isKeyword('CHARACTER SET')); + $this->assertEquals( + 1 | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED, + Context::isKeyword('CHARACTER SET') + ); $this->assertEquals(1 | Token::FLAG_KEYWORD_RESERVED, Context::isKeyword('FROM', true)); - $this->assertEquals(null, Context::isKeyword('PRIMARY KEY', true)); + $this->assertEquals(null, Context::isKeyword('MODIFY', true)); $this->assertEquals(null, Context::isKeyword('foo')); $this->assertEquals(null, Context::isKeyword('bar baz')); diff --git a/tests/Lexer/TokensList.php b/tests/Lexer/TokensListTest.php index 8887241..55bf1b9 100644 --- a/tests/Lexer/TokensList.php +++ b/tests/Lexer/TokensListTest.php @@ -7,7 +7,7 @@ use SqlParser\TokensList; use SqlParser\Tests\TestCase; -class TokensListCase extends TestCase +class TokensListTest extends TestCase { /** @@ -24,24 +24,20 @@ class TokensListCase extends TestCase { $this->tokens = array( new Token('SELECT', Token::TYPE_KEYWORD), + new Token(' ', Token::TYPE_WHITESPACE), new Token('*', Token::TYPE_OPERATOR), + new Token(' ', Token::TYPE_WHITESPACE), new Token('FROM', Token::TYPE_KEYWORD), - new Token('`test`', Token::TYPE_SYMBOL) + new Token(' ', Token::TYPE_WHITESPACE), + new Token('`test`', Token::TYPE_SYMBOL), + new Token(' ', Token::TYPE_WHITESPACE), ); } - /** - * Gets a list used for testing. - * - * @return TokensList - */ - public function getList() + public function testBuild() { - $list = new TokensList(); - foreach ($this->tokens as $token) { - $list[] = $token; - } - return $list; + $list = new TokensList($this->tokens); + $this->assertEquals('SELECT * FROM `test` ', TokensList::build($list)); } public function testAdd() @@ -50,30 +46,30 @@ class TokensListCase extends TestCase foreach ($this->tokens as $token) { $list->add($token); } - $this->assertEquals($this->getList(), $list); + $this->assertEquals(new TokensList($this->tokens), $list); } public function testGetNext() { - $list = $this->getList(); + $list = new TokensList($this->tokens); $this->assertEquals($this->tokens[0], $list->getNext()); - $this->assertEquals($this->tokens[1], $list->getNext()); $this->assertEquals($this->tokens[2], $list->getNext()); - $this->assertEquals($this->tokens[3], $list->getNext()); + $this->assertEquals($this->tokens[4], $list->getNext()); + $this->assertEquals($this->tokens[6], $list->getNext()); $this->assertEquals(null, $list->getNext()); } public function testGetNextOfType() { - $list = $this->getList(); + $list = new TokensList($this->tokens); $this->assertEquals($this->tokens[0], $list->getNextOfType(Token::TYPE_KEYWORD)); - $this->assertEquals($this->tokens[2], $list->getNextOfType(Token::TYPE_KEYWORD)); + $this->assertEquals($this->tokens[4], $list->getNextOfType(Token::TYPE_KEYWORD)); $this->assertEquals(null, $list->getNextOfType(Token::TYPE_KEYWORD)); } public function testGetNextOfTypeAndValue() { - $list = $this->getList(); + $list = new TokensList($this->tokens); $this->assertEquals($this->tokens[0], $list->getNextOfTypeAndValue(Token::TYPE_KEYWORD, 'SELECT')); $this->assertEquals(null, $list->getNextOfTypeAndValue(Token::TYPE_KEYWORD, 'SELECT')); } @@ -97,11 +93,10 @@ class TokensListCase extends TestCase // offsetExists($offset) $this->assertTrue(isset($list[2])); - $this->assertFalse(isset($list[5])); + $this->assertFalse(isset($list[8])); // offsetUnset($offset) unset($list[2]); $this->assertEquals($this->tokens[3], $list[2]); - } } |