summaryrefslogtreecommitdiffstats
path: root/tests/Lexer
diff options
context:
space:
mode:
Diffstat (limited to 'tests/Lexer')
-rw-r--r--tests/Lexer/ContextTest.php25
-rw-r--r--tests/Lexer/IsMethodsTest.php9
-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]);
-
}
}