summaryrefslogtreecommitdiffstats
path: root/tests/Lexer/ContextTest.php
diff options
context:
space:
mode:
Diffstat (limited to 'tests/Lexer/ContextTest.php')
-rw-r--r--tests/Lexer/ContextTest.php39
1 files changed, 39 insertions, 0 deletions
diff --git a/tests/Lexer/ContextTest.php b/tests/Lexer/ContextTest.php
new file mode 100644
index 0000000..b630d03
--- /dev/null
+++ b/tests/Lexer/ContextTest.php
@@ -0,0 +1,39 @@
+<?php
+
+namespace SqlParser\Tests\Lexer;
+
+use SqlParser\Context;
+
+use SqlParser\Tests\TestCase;
+
+class ContextTest extends TestCase
+{
+
+ public function testLoad()
+ {
+ // Default context is 5.7.0.
+ $this->assertEquals('\\SqlParser\\Contexts\\ContextMySql50700', Context::$loadedContext);
+ $this->assertTrue(isset(Context::$KEYWORDS['STORED']));
+ $this->assertFalse(isset(Context::$KEYWORDS['AUTHORS']));
+
+ Context::load('MySql50600');
+ $this->assertEquals('\\SqlParser\\Contexts\\ContextMySql50600', Context::$loadedContext);
+ $this->assertFalse(isset(Context::$KEYWORDS['STORED']));
+ $this->assertTrue(isset(Context::$KEYWORDS['AUTHORS']));
+
+ // Restoring context.
+ Context::load('');
+ $this->assertEquals('\\SqlParser\\Contexts\\ContextMySql50700', Context::$defaultContext);
+ $this->assertTrue(isset(Context::$KEYWORDS['STORED']));
+ $this->assertFalse(isset(Context::$KEYWORDS['AUTHORS']));
+ }
+
+ /**
+ * @expectedException Exception
+ * @expectedExceptionMessage Specified context ("\SqlParser\Contexts\ContextFoo") doesn't exist.
+ */
+ public function testLoadError()
+ {
+ Context::load('Foo');
+ }
+}