1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70
|
<?php
declare(strict_types=1);
namespace PhpMyAdmin\SqlParser\Tests\Parser;
use PhpMyAdmin\SqlParser\Parser;
use PhpMyAdmin\SqlParser\Statements\KillStatement;
use PhpMyAdmin\SqlParser\Tests\TestCase;
use PHPUnit\Framework\Attributes\DataProvider;
class KillStatementTest extends TestCase
{
#[DataProvider('killProvider')]
public function testKill(string $test): void
{
$this->runParserTest($test);
}
/**
* @return string[][]
*/
public static function killProvider(): array
{
return [
['parser/parseKill'],
['parser/parseKill2'],
['parser/parseKill3'],
['parser/parseKillConnection'],
['parser/parseKillQuery'],
['parser/parseKillErr1'],
['parser/parseKillErr2'],
['parser/parseKillErr3'],
['parser/parseKillErr4'],
];
}
#[DataProvider('buildKillProvider')]
public function testBuildKill(string $sql): void
{
$parser = new Parser($sql);
$this->assertCount(1, $parser->statements);
$statement = $parser->statements[0];
$this->assertInstanceOf(KillStatement::class, $statement);
$builtSql = $statement->build();
$this->assertEquals($sql, $builtSql);
}
/**
* @return array<int, array<int, string>>
* @psalm-return list<list<string>>
*/
public static function buildKillProvider(): array
{
return [
['KILL (SELECT 3 + 4)'],
['KILL QUERY 4'],
['KILL CONNECTION 5'],
['KILL 6'],
['KILL QUERY (SELECT 7)'],
['KILL SOFT QUERY (SELECT 8)'],
['KILL HARD 9'],
['KILL USER 10'],
['KILL SOFT (SELECT 1)'],
['KILL (2)'],
['KILL QUERY ID (2)'],
['KILL QUERY ID (SELECT ID FROM INFORMATION_SCHEMA.PROCESSLIST LIMIT 0, 1)'],
];
}
}
|