diff options
Diffstat (limited to 'tests/Utils/CLITest.php')
-rw-r--r-- | tests/Utils/CLITest.php | 363 |
1 files changed, 190 insertions, 173 deletions
diff --git a/tests/Utils/CLITest.php b/tests/Utils/CLITest.php index 4caa70d..2f7102f 100644 --- a/tests/Utils/CLITest.php +++ b/tests/Utils/CLITest.php @@ -1,14 +1,16 @@ <?php +declare(strict_types=1); namespace PhpMyAdmin\SqlParser\Tests\Utils; use PhpMyAdmin\SqlParser\Tests\TestCase; +use PhpMyAdmin\SqlParser\Utils\CLI; class CLITest extends TestCase { private function getCLI($getopt) { - $cli = $this->getMockBuilder('PhpMyAdmin\SqlParser\Utils\CLI')->setMethods(array('getopt'))->getMock(); + $cli = $this->getMockBuilder('PhpMyAdmin\SqlParser\Utils\CLI')->setMethods(['getopt'])->getMock(); $cli->method('getopt')->willReturn($getopt); return $cli; @@ -16,7 +18,7 @@ class CLITest extends TestCase private function getCLIStdIn($input, $getopt) { - $cli = $this->getMockBuilder('PhpMyAdmin\SqlParser\Utils\CLI')->setMethods(array('getopt', 'readStdin'))->getMock(); + $cli = $this->getMockBuilder('PhpMyAdmin\SqlParser\Utils\CLI')->setMethods(['getopt', 'readStdin'])->getMock(); $cli->method('getopt')->willReturn($getopt); $cli->method('readStdin')->willReturn($input); return $cli; @@ -29,19 +31,19 @@ class CLITest extends TestCase */ public function testGetopt() { - $cli = new \PhpMyAdmin\SqlParser\Utils\CLI(); + $cli = new CLI(); $this->assertEquals( - $cli->getopt('', array()), - array() + $cli->getopt('', []), + [] ); } /** - * @dataProvider highlightParams - * * @param mixed $getopt * @param mixed $output * @param mixed $result + * + * @dataProvider highlightParams */ public function testRunHighlight($getopt, $output, $result) { @@ -52,61 +54,61 @@ class CLITest extends TestCase public function highlightParams() { - return array( - array( - array('q' => 'SELECT 1'), + return [ + [ + ['q' => 'SELECT 1'], "\x1b[35mSELECT\n \x1b[92m1\x1b[0m\n", - 0 - ), - array( - array('query' => 'SELECT 1'), + 0, + ], + [ + ['query' => 'SELECT 1'], "\x1b[35mSELECT\n \x1b[92m1\x1b[0m\n", - 0 - ), - array( - array( + 0, + ], + [ + [ 'q' => 'SELECT /* comment */ 1 /* other */', 'f' => 'text', - ), + ], "SELECT\n /* comment */ 1 /* other */\n", - 0 - ), - array( - array( + 0, + ], + [ + [ 'q' => 'SELECT 1', 'f' => 'foo', - ), + ], "ERROR: Invalid value for format!\n", - 1 - ), - array( - array( + 1, + ], + [ + [ 'q' => 'SELECT 1', 'f' => 'html', - ), - '<span class="sql-reserved">SELECT</span>' . '<br/>' . + ], + '<span class="sql-reserved">SELECT</span><br/>' . ' <span class="sql-number">1</span>' . "\n", - 0 - ), - array( - array('h' => true), + 0, + ], + [ + ['h' => true], 'Usage: highlight-query --query SQL [--format html|cli|text]' . "\n" . ' cat file.sql | highlight-query' . "\n", - 0 - ), - array( - array(), + 0, + ], + [ + [], 'ERROR: Missing parameters!' . "\n" . 'Usage: highlight-query --query SQL [--format html|cli|text]' . "\n" . ' cat file.sql | highlight-query' . "\n", 1, - ), - array( + ], + [ false, '', - 1 - ) - ); + 1, + ], + ]; } @@ -127,69 +129,69 @@ class CLITest extends TestCase public function highlightParamsStdIn() { - return array( - array( + return [ + [ 'SELECT 1', - array(), + [], "\x1b[35mSELECT\n \x1b[92m1\x1b[0m\n", - 0 - ), - array( + 0, + ], + [ 'SELECT /* comment */ 1 /* other */', - array( + [ 'f' => 'text', - ), + ], "SELECT\n /* comment */ 1 /* other */\n", - 0 - ), - array( + 0, + ], + [ 'SELECT 1', - array( + [ 'f' => 'foo', - ), + ], "ERROR: Invalid value for format!\n", - 1 - ), - array( + 1, + ], + [ 'SELECT 1', - array( + [ 'f' => 'html', - ), + ], '<span class="sql-reserved">SELECT</span>' . '<br/>' . ' <span class="sql-number">1</span>' . "\n", - 0 - ), - array( + 0, + ], + [ '', - array('h' => true), + ['h' => true], 'Usage: highlight-query --query SQL [--format html|cli|text]' . "\n" . ' cat file.sql | highlight-query' . "\n", - 0 - ), - array( + 0, + ], + [ '', - array(), + [], 'ERROR: Missing parameters!' . "\n" . 'Usage: highlight-query --query SQL [--format html|cli|text]' . "\n" . ' cat file.sql | highlight-query' . "\n", 1, - ), - array( + ], + [ '', false, '', - 1 - ) - ); + 1, + ], + ]; } /** - * @dataProvider lintParamsStdIn - * * @param mixed $input * @param mixed $getopt * @param mixed $output * @param mixed $result + * + * @dataProvider lintParamsStdIn */ public function testRunLintFromStdIn($input, $getopt, $output, $result) { @@ -200,59 +202,59 @@ class CLITest extends TestCase public function lintParamsStdIn() { - return array( - array( + return [ + [ 'SELECT 1', - array(), + [], '', 0, - ), - array( + ], + [ 'SELECT SELECT', - array(), + [], '#1: An expression was expected. (near "SELECT" at position 7)' . "\n" . '#2: This type of clause was previously parsed. (near "SELECT" at position 7)' . "\n" . '#3: An expression was expected. (near "" at position 0)' . "\n", 10, - ), - array( + ], + [ 'SELECT SELECT', - array('c' => 'MySql80000'), + ['c' => 'MySql80000'], '#1: An expression was expected. (near "SELECT" at position 7)' . "\n" . '#2: This type of clause was previously parsed. (near "SELECT" at position 7)' . "\n" . '#3: An expression was expected. (near "" at position 0)' . "\n", 10, - ), - array( + ], + [ '', - array(), + [], 'ERROR: Missing parameters!' . "\n" . 'Usage: lint-query --query SQL' . "\n" . ' cat file.sql | lint-query' . "\n", 1, - ), - array( + ], + [ '', - array('h' => true), + ['h' => true], 'Usage: lint-query --query SQL' . "\n" . ' cat file.sql | lint-query' . "\n", 0, - ), - array( + ], + [ '', false, '', 1, - ) - ); + ], + ]; } /** - * @dataProvider lintParams - * * @param mixed $getopt * @param mixed $output * @param mixed $result + * + * @dataProvider lintParams */ public function testRunLint($getopt, $output, $result) { @@ -263,58 +265,61 @@ class CLITest extends TestCase public function lintParams() { - return array( - array( - array('q' => 'SELECT 1'), + return [ + [ + ['q' => 'SELECT 1'], '', 0, - ), - array( - array('query' => 'SELECT 1'), + ], + [ + ['query' => 'SELECT 1'], '', 0, - ), - array( - array('q' => 'SELECT SELECT'), + ], + [ + ['q' => 'SELECT SELECT'], '#1: An expression was expected. (near "SELECT" at position 7)' . "\n" . '#2: This type of clause was previously parsed. (near "SELECT" at position 7)' . "\n" . '#3: An expression was expected. (near "" at position 0)' . "\n", 10, - ), - array( - array('q' => 'SELECT SELECT', 'c' => 'MySql80000'), + ], + [ + [ + 'q' => 'SELECT SELECT', + 'c' => 'MySql80000', + ], '#1: An expression was expected. (near "SELECT" at position 7)' . "\n" . '#2: This type of clause was previously parsed. (near "SELECT" at position 7)' . "\n" . '#3: An expression was expected. (near "" at position 0)' . "\n", 10, - ), - array( - array('h' => true), + ], + [ + ['h' => true], 'Usage: lint-query --query SQL' . "\n" . ' cat file.sql | lint-query' . "\n", 0, - ), - array( - array(), + ], + [ + [], 'ERROR: Missing parameters!' . "\n" . 'Usage: lint-query --query SQL' . "\n" . ' cat file.sql | lint-query' . "\n", 1, - ), - array( + ], + [ false, '', 1, - ) - ); + ], + ]; } /** - * @dataProvider tokenizeParams - * * @param mixed $getopt * @param mixed $output * @param mixed $result + * + * @dataProvider tokenizeParams */ public function testRunTokenize($getopt, $output, $result) { @@ -325,52 +330,50 @@ class CLITest extends TestCase public function tokenizeParams() { - $result = ( - "[TOKEN 0]\nType = 1\nFlags = 3\nValue = 'SELECT'\nToken = 'SELECT'\n\n" + $result = "[TOKEN 0]\nType = 1\nFlags = 3\nValue = 'SELECT'\nToken = 'SELECT'\n\n" . "[TOKEN 1]\nType = 3\nFlags = 0\nValue = ' '\nToken = ' '\n\n" . "[TOKEN 2]\nType = 6\nFlags = 0\nValue = 1\nToken = '1'\n\n" - . "[TOKEN 3]\nType = 9\nFlags = 0\nValue = NULL\nToken = NULL\n\n" - ); + . "[TOKEN 3]\nType = 9\nFlags = 0\nValue = NULL\nToken = NULL\n\n"; - return array( - array( - array('q' => 'SELECT 1'), + return [ + [ + ['q' => 'SELECT 1'], $result, 0, - ), - array( - array('query' => 'SELECT 1'), + ], + [ + ['query' => 'SELECT 1'], $result, 0, - ), - array( - array('h' => true), + ], + [ + ['h' => true], 'Usage: tokenize-query --query SQL' . "\n" . ' cat file.sql | tokenize-query' . "\n", 0, - ), - array( - array(), + ], + [ + [], 'ERROR: Missing parameters!' . "\n" . 'Usage: tokenize-query --query SQL' . "\n" . ' cat file.sql | tokenize-query' . "\n", 1, - ), - array( + ], + [ false, '', 1, - ) - ); + ], + ]; } /** - * @dataProvider tokenizeParamsStdIn - * * @param mixed $input * @param mixed $getopt * @param mixed $output * @param mixed $result + * + * @dataProvider tokenizeParamsStdIn */ public function testRunTokenizeStdIn($input, $getopt, $output, $result) { @@ -388,64 +391,78 @@ class CLITest extends TestCase . "[TOKEN 3]\nType = 9\nFlags = 0\nValue = NULL\nToken = NULL\n\n" ); - return array( - array( + return [ + [ 'SELECT 1', - array(), + [], $result, 0, - ), - array( + ], + [ '', - array('h' => true), + ['h' => true], 'Usage: tokenize-query --query SQL' . "\n" . ' cat file.sql | tokenize-query' . "\n", 0, - ), - array( + ], + [ '', - array(), + [], 'ERROR: Missing parameters!' . "\n" . 'Usage: tokenize-query --query SQL' . "\n" . ' cat file.sql | tokenize-query' . "\n", 1, - ), - array( + ], + [ '', false, '', 1, - ) - ); + ], + ]; } /** - * @dataProvider stdinParams - * * @param string $cmd - * @param int $result + * @param int $result + * + * @dataProvider stdinParams */ public function testStdinPipe($cmd, $result) { - exec ($cmd, $out, $ret); + exec($cmd, $out, $ret); $this->assertSame($result, $ret); } public function stdinParams() { - if (defined('PHP_BINARY')) { - $binPath = PHP_BINARY . ' ' . realpath(dirname(__DIR__) . '/../') . '/bin/'; - } else { - $binPath = 'php' . ' ' . realpath(dirname(__DIR__) . '/../') . '/bin/'; - } + $binPath = PHP_BINARY . ' ' . dirname(__DIR__, 2) . '/bin/'; - return array( - array('echo "SELECT 1" | '. $binPath .'highlight-query', 0), - array('echo "invalid query" | '. $binPath .'highlight-query', 0), - array('echo "SELECT 1" | '. $binPath .'lint-query', 0), - array('echo "invalid query" | '. $binPath .'lint-query', 10), - array('echo "SELECT 1" | '. $binPath .'tokenize-query', 0), - array('echo "invalid query" | '. $binPath .'tokenize-query', 0) - ); + return [ + [ + 'echo "SELECT 1" | ' . $binPath . 'highlight-query', + 0, + ], + [ + 'echo "invalid query" | ' . $binPath . 'highlight-query', + 0, + ], + [ + 'echo "SELECT 1" | ' . $binPath . 'lint-query', + 0, + ], + [ + 'echo "invalid query" | ' . $binPath . 'lint-query', + 10, + ], + [ + 'echo "SELECT 1" | ' . $binPath . 'tokenize-query', + 0, + ], + [ + 'echo "invalid query" | ' . $binPath . 'tokenize-query', + 0, + ], + ]; } } |