diff options
Diffstat (limited to 'tests/Lexer/ContextTest.php')
-rw-r--r-- | tests/Lexer/ContextTest.php | 39 |
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'); + } +} |