diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 00ecfe75..be574b1a 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -81,6 +81,43 @@ jobs: with: cli-args: "--format=php-clover build/logs/clover.xml --revision=${{ github.event.pull_request.head.sha || github.sha }}" + test-php-with-newer-phpunit: + name: Test on PHP ${{ matrix.php }} with PHPUnit ${{ matrix.phpunit }} + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + include: + - {php: '8.1', phpunit: '10'} + - {php: '8.2', phpunit: '11'} + - {php: '8.3', phpunit: '12'} + - {php: '8.4', phpunit: '13'} + steps: + - name: Checkout code + uses: actions/checkout@v7 + with: + persist-credentials: false + + - name: Set up PHP ${{ matrix.php }} + uses: shivammathur/setup-php@v2 + with: + php-version: ${{ matrix.php }} + coverage: none + + - name: Update composer.json + shell: bash + env: + PHPUNIT_VERSION: ${{ matrix.phpunit }} + run: | + composer remove --dev vimeo/psalm psalm/plugin-phpunit --no-update --no-interaction --ansi + composer require --dev phpunit/phpunit:^"$PHPUNIT_VERSION" --no-update --no-interaction --ansi + + - name: Install Composer dependencies + uses: ramsey/composer-install@v4 + + - name: Run PHP tests + run: vendor/bin/phpunit --no-coverage --no-logging --display-all-issues + php-benchmark: name: Benchmark on PHP ${{ matrix.php-version }} and ${{ matrix.os }} runs-on: ${{ matrix.os }} diff --git a/tests/Builder/AlterStatementTest.php b/tests/Builder/AlterStatementTest.php index f011b1a5..bc97bfc6 100644 --- a/tests/Builder/AlterStatementTest.php +++ b/tests/Builder/AlterStatementTest.php @@ -7,6 +7,7 @@ use Generator; use PhpMyAdmin\SqlParser\Parser; use PhpMyAdmin\SqlParser\Tests\TestCase; +use PHPUnit\Framework\Attributes\DataProvider; class AlterStatementTest extends TestCase { @@ -187,6 +188,7 @@ public static function provideBuilderForRenameColumn(): Generator /** * @dataProvider provideBuilderForRenameColumn */ + #[DataProvider('provideBuilderForRenameColumn')] public function testBuilderRenameColumn(string $query): void { $parser = new Parser($query); @@ -251,6 +253,7 @@ public static function provideBuilderForAlterRoutine(): Generator /** * @dataProvider provideBuilderForAlterRoutine */ + #[DataProvider('provideBuilderForAlterRoutine')] public function testBuilderForAlterRoutine(string $query): void { $parser = new Parser($query); diff --git a/tests/Builder/CreateStatementTest.php b/tests/Builder/CreateStatementTest.php index c76497fd..1cd9b713 100644 --- a/tests/Builder/CreateStatementTest.php +++ b/tests/Builder/CreateStatementTest.php @@ -14,6 +14,7 @@ use PhpMyAdmin\SqlParser\Statements\CreateStatement; use PhpMyAdmin\SqlParser\Tests\TestCase; use PhpMyAdmin\SqlParser\TokensList; +use PHPUnit\Framework\Attributes\DataProvider; use function implode; @@ -299,6 +300,7 @@ public static function partitionQueriesProvider(): array /** * @dataProvider partitionQueriesProvider */ + #[DataProvider('partitionQueriesProvider')] public function testBuilderPartitionsEngine(string $query): void { $parser = new Parser($query); diff --git a/tests/Builder/InsertStatementTest.php b/tests/Builder/InsertStatementTest.php index 8c32180f..2d0f7f86 100644 --- a/tests/Builder/InsertStatementTest.php +++ b/tests/Builder/InsertStatementTest.php @@ -8,6 +8,7 @@ use PhpMyAdmin\SqlParser\Context; use PhpMyAdmin\SqlParser\Parser; use PhpMyAdmin\SqlParser\Tests\TestCase; +use PHPUnit\Framework\Attributes\DataProvider; class InsertStatementTest extends TestCase { @@ -29,6 +30,7 @@ protected function tearDown(): void } /** @dataProvider providerForTestBuilder */ + #[DataProvider('providerForTestBuilder')] public function testBuilder(string $sql): void { $parser = new Parser($sql); diff --git a/tests/Components/ArrayObjTest.php b/tests/Components/ArrayObjTest.php index 5a251540..b8585432 100644 --- a/tests/Components/ArrayObjTest.php +++ b/tests/Components/ArrayObjTest.php @@ -8,6 +8,7 @@ use PhpMyAdmin\SqlParser\Components\Expression; use PhpMyAdmin\SqlParser\Parser; use PhpMyAdmin\SqlParser\Tests\TestCase; +use PHPUnit\Framework\Attributes\DataProvider; class ArrayObjTest extends TestCase { @@ -42,6 +43,7 @@ public function testParseType(): void /** * @dataProvider parseProvider */ + #[DataProvider('parseProvider')] public function testParse(string $test): void { $this->runParserTest($test); diff --git a/tests/Components/ComponentTest.php b/tests/Components/ComponentTest.php index 1c9462eb..9c2e9ff7 100644 --- a/tests/Components/ComponentTest.php +++ b/tests/Components/ComponentTest.php @@ -8,6 +8,8 @@ use PhpMyAdmin\SqlParser\Parser; use PhpMyAdmin\SqlParser\Tests\TestCase; use PhpMyAdmin\SqlParser\TokensList; +use PHPUnit\Framework\Attributes\PreserveGlobalState; +use PHPUnit\Framework\Attributes\RunInSeparateProcess; use Throwable; class ComponentTest extends TestCase @@ -16,6 +18,8 @@ class ComponentTest extends TestCase * @runInSeparateProcess * @preserveGlobalState disabled */ + #[RunInSeparateProcess] + #[PreserveGlobalState(false)] public function testParse(): void { $this->expectExceptionMessage('Not implemented yet.'); diff --git a/tests/Components/ExpressionTest.php b/tests/Components/ExpressionTest.php index 73dfe7cd..45dba772 100644 --- a/tests/Components/ExpressionTest.php +++ b/tests/Components/ExpressionTest.php @@ -7,6 +7,7 @@ use PhpMyAdmin\SqlParser\Components\Expression; use PhpMyAdmin\SqlParser\Parser; use PhpMyAdmin\SqlParser\Tests\TestCase; +use PHPUnit\Framework\Attributes\DataProvider; class ExpressionTest extends TestCase { @@ -42,6 +43,7 @@ public function testParse3(): void /** * @dataProvider parseErrProvider */ + #[DataProvider('parseErrProvider')] public function testParseErr(string $expr, string $error): void { $parser = new Parser(); @@ -145,6 +147,7 @@ public static function mysqlCommandsProvider(): array /** * @dataProvider mysqlCommandsProvider */ + #[DataProvider('mysqlCommandsProvider')] public function testMysqlCommands(string $expr, string $expected): void { $parser = new Parser($expr, true); diff --git a/tests/Components/GroupKeywordTest.php b/tests/Components/GroupKeywordTest.php index 4ddba778..73381dd7 100644 --- a/tests/Components/GroupKeywordTest.php +++ b/tests/Components/GroupKeywordTest.php @@ -8,6 +8,7 @@ use PhpMyAdmin\SqlParser\Components\Expression; use PhpMyAdmin\SqlParser\Components\GroupKeyword; use PhpMyAdmin\SqlParser\Tests\TestCase; +use PHPUnit\Framework\Attributes\DataProvider; use function array_map; @@ -56,6 +57,7 @@ public static function provideExpressions(): Generator * * @dataProvider provideExpressions */ + #[DataProvider('provideExpressions')] public function testBuild($component, string $expected): void { $this->assertSame($expected, GroupKeyword::build($component)); diff --git a/tests/Components/LimitTest.php b/tests/Components/LimitTest.php index e8c29048..706ca1ed 100644 --- a/tests/Components/LimitTest.php +++ b/tests/Components/LimitTest.php @@ -6,6 +6,7 @@ use PhpMyAdmin\SqlParser\Components\Limit; use PhpMyAdmin\SqlParser\Tests\TestCase; +use PHPUnit\Framework\Attributes\DataProvider; class LimitTest extends TestCase { @@ -24,6 +25,7 @@ public function testBuildWithOffset(): void /** * @dataProvider parseProvider */ + #[DataProvider('parseProvider')] public function testParse(string $test): void { $this->runParserTest($test); diff --git a/tests/Components/LockExpressionTest.php b/tests/Components/LockExpressionTest.php index e1cb4919..bffbba23 100644 --- a/tests/Components/LockExpressionTest.php +++ b/tests/Components/LockExpressionTest.php @@ -7,6 +7,7 @@ use PhpMyAdmin\SqlParser\Components\LockExpression; use PhpMyAdmin\SqlParser\Parser; use PhpMyAdmin\SqlParser\Tests\TestCase; +use PHPUnit\Framework\Attributes\DataProvider; class LockExpressionTest extends TestCase { @@ -30,6 +31,7 @@ public function testParse2(): void /** * @dataProvider parseErrProvider */ + #[DataProvider('parseErrProvider')] public function testParseErr(string $expr, string $error): void { $parser = new Parser(); diff --git a/tests/Lexer/ContextTest.php b/tests/Lexer/ContextTest.php index 565b9d7f..7f1061a4 100644 --- a/tests/Lexer/ContextTest.php +++ b/tests/Lexer/ContextTest.php @@ -7,6 +7,7 @@ use PhpMyAdmin\SqlParser\Context; use PhpMyAdmin\SqlParser\Contexts; use PhpMyAdmin\SqlParser\Tests\TestCase; +use PHPUnit\Framework\Attributes\DataProvider; use Throwable; use function class_exists; @@ -37,6 +38,7 @@ public function testLoad(): void * * @dataProvider contextLoadingProvider */ + #[DataProvider('contextLoadingProvider')] public function testLoadClosest(string $context, ?string $expected): void { $this->assertEquals($expected, Context::loadClosest($context)); @@ -90,6 +92,7 @@ public static function contextLoadingProvider(): array /** * @dataProvider contextNamesProvider */ + #[DataProvider('contextNamesProvider')] public function testLoadAll(string $context): void { Context::load($context); @@ -148,6 +151,7 @@ public static function contextNamesProvider(): array /** * @dataProvider contextClassesProvider */ + #[DataProvider('contextClassesProvider')] public function testLoadAllByClass(string $context): void { Context::load($context); @@ -217,6 +221,7 @@ public function testLoadError(): void * * @dataProvider providerForTestMode */ + #[DataProvider('providerForTestMode')] public function testMode($mode, int $expected): void { Context::setMode($mode); diff --git a/tests/Lexer/LexerTest.php b/tests/Lexer/LexerTest.php index e310c94f..b370aab2 100644 --- a/tests/Lexer/LexerTest.php +++ b/tests/Lexer/LexerTest.php @@ -7,6 +7,9 @@ use PhpMyAdmin\SqlParser\Exceptions\LexerException; use PhpMyAdmin\SqlParser\Lexer; use PhpMyAdmin\SqlParser\Tests\TestCase; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\PreserveGlobalState; +use PHPUnit\Framework\Attributes\RunInSeparateProcess; use function sprintf; @@ -16,6 +19,8 @@ class LexerTest extends TestCase * @runInSeparateProcess * @preserveGlobalState disabled */ + #[RunInSeparateProcess] + #[PreserveGlobalState(false)] public function testError(): void { $lexer = new Lexer(''); @@ -51,6 +56,7 @@ public function testErrorStrict(): void /** * @dataProvider lexProvider */ + #[DataProvider('lexProvider')] public function testLex(string $test): void { $this->runParserTest($test); diff --git a/tests/Misc/BugsTest.php b/tests/Misc/BugsTest.php index 4b6e3877..062affe7 100644 --- a/tests/Misc/BugsTest.php +++ b/tests/Misc/BugsTest.php @@ -5,12 +5,14 @@ namespace PhpMyAdmin\SqlParser\Tests\Misc; use PhpMyAdmin\SqlParser\Tests\TestCase; +use PHPUnit\Framework\Attributes\DataProvider; class BugsTest extends TestCase { /** * @dataProvider bugProvider */ + #[DataProvider('bugProvider')] public function testBug(string $test): void { $this->runParserTest($test); diff --git a/tests/Misc/ParameterTest.php b/tests/Misc/ParameterTest.php index e5ba4276..aab06308 100644 --- a/tests/Misc/ParameterTest.php +++ b/tests/Misc/ParameterTest.php @@ -5,12 +5,14 @@ namespace PhpMyAdmin\SqlParser\Tests\Misc; use PhpMyAdmin\SqlParser\Tests\TestCase; +use PHPUnit\Framework\Attributes\DataProvider; class ParameterTest extends TestCase { /** * @dataProvider parameterProvider */ + #[DataProvider('parameterProvider')] public function testParameter(string $test): void { $this->runParserTest($test); diff --git a/tests/Misc/TranslatorTest.php b/tests/Misc/TranslatorTest.php index f38b0e9e..d517294a 100644 --- a/tests/Misc/TranslatorTest.php +++ b/tests/Misc/TranslatorTest.php @@ -7,6 +7,8 @@ use PhpMyAdmin\MoTranslator\Loader; use PhpMyAdmin\MoTranslator\Translator as MoTranslator; use PhpMyAdmin\SqlParser\Translator; +use PHPUnit\Framework\Attributes\CoversClass; +use PHPUnit\Framework\Attributes\TestWith; use PHPUnit\Framework\TestCase; use ReflectionClass; use ReflectionProperty; @@ -16,6 +18,7 @@ use const PHP_VERSION_ID; /** @covers \PhpMyAdmin\SqlParser\Translator */ +#[CoversClass(Translator::class)] final class TranslatorTest extends TestCase { public static function tearDownAfterClass(): void @@ -51,6 +54,10 @@ public function testLocale(): void * ["en", "", "en"] * ["fr", "", "fr"] */ + #[TestWith([null, 'en', 'en'])] + #[TestWith([null, 'fr', 'fr'])] + #[TestWith(['en', '', 'en'])] + #[TestWith(['fr', '', 'fr'])] public function testLoad(?string $globalLang, string $locale, string $expectedLocale): void { $loaderProperty = new ReflectionProperty(Translator::class, 'loader'); diff --git a/tests/Misc/UtfStringTest.php b/tests/Misc/UtfStringTest.php index 4434d330..85244b77 100644 --- a/tests/Misc/UtfStringTest.php +++ b/tests/Misc/UtfStringTest.php @@ -6,6 +6,7 @@ use PhpMyAdmin\SqlParser\Tests\TestCase; use PhpMyAdmin\SqlParser\UtfString; +use PHPUnit\Framework\Attributes\DataProvider; use Throwable; use function chr; @@ -86,6 +87,7 @@ public function testToString(): void * * @dataProvider utf8StringsProvider */ + #[DataProvider('utf8StringsProvider')] public function testAccess(string $text, ?string $pos10, ?string $pos20): void { $str = new UtfString($text); diff --git a/tests/Parser/AlterStatementTest.php b/tests/Parser/AlterStatementTest.php index c39b1a5d..be628c51 100644 --- a/tests/Parser/AlterStatementTest.php +++ b/tests/Parser/AlterStatementTest.php @@ -5,12 +5,14 @@ namespace PhpMyAdmin\SqlParser\Tests\Parser; use PhpMyAdmin\SqlParser\Tests\TestCase; +use PHPUnit\Framework\Attributes\DataProvider; class AlterStatementTest extends TestCase { /** * @dataProvider alterProvider */ + #[DataProvider('alterProvider')] public function testAlter(string $test): void { $this->runParserTest($test); diff --git a/tests/Parser/AnalyzeStatementTest.php b/tests/Parser/AnalyzeStatementTest.php index 9c8543a6..9143fc66 100644 --- a/tests/Parser/AnalyzeStatementTest.php +++ b/tests/Parser/AnalyzeStatementTest.php @@ -5,12 +5,14 @@ namespace PhpMyAdmin\SqlParser\Tests\Parser; use PhpMyAdmin\SqlParser\Tests\TestCase; +use PHPUnit\Framework\Attributes\DataProvider; class AnalyzeStatementTest extends TestCase { /** * @dataProvider analyzeProvider */ + #[DataProvider('analyzeProvider')] public function testAnalyze(string $test): void { $this->runParserTest($test); diff --git a/tests/Parser/CallStatementTest.php b/tests/Parser/CallStatementTest.php index cfab7e5d..8e68e85b 100644 --- a/tests/Parser/CallStatementTest.php +++ b/tests/Parser/CallStatementTest.php @@ -5,12 +5,14 @@ namespace PhpMyAdmin\SqlParser\Tests\Parser; use PhpMyAdmin\SqlParser\Tests\TestCase; +use PHPUnit\Framework\Attributes\DataProvider; class CallStatementTest extends TestCase { /** * @dataProvider callProvider */ + #[DataProvider('callProvider')] public function testCall(string $test): void { $this->runParserTest($test); diff --git a/tests/Parser/CreateStatementTest.php b/tests/Parser/CreateStatementTest.php index c6f1e5a3..79965c28 100644 --- a/tests/Parser/CreateStatementTest.php +++ b/tests/Parser/CreateStatementTest.php @@ -5,12 +5,14 @@ namespace PhpMyAdmin\SqlParser\Tests\Parser; use PhpMyAdmin\SqlParser\Tests\TestCase; +use PHPUnit\Framework\Attributes\DataProvider; class CreateStatementTest extends TestCase { /** * @dataProvider createProvider */ + #[DataProvider('createProvider')] public function testCreate(string $test): void { $this->runParserTest($test); diff --git a/tests/Parser/DeleteStatementTest.php b/tests/Parser/DeleteStatementTest.php index 8d4c8744..f9bc1f3d 100644 --- a/tests/Parser/DeleteStatementTest.php +++ b/tests/Parser/DeleteStatementTest.php @@ -5,12 +5,14 @@ namespace PhpMyAdmin\SqlParser\Tests\Parser; use PhpMyAdmin\SqlParser\Tests\TestCase; +use PHPUnit\Framework\Attributes\DataProvider; class DeleteStatementTest extends TestCase { /** * @dataProvider deleteProvider */ + #[DataProvider('deleteProvider')] public function testDelete(string $test): void { $this->runParserTest($test); diff --git a/tests/Parser/DropStatementTest.php b/tests/Parser/DropStatementTest.php index 21c41eb6..fc07f1e8 100644 --- a/tests/Parser/DropStatementTest.php +++ b/tests/Parser/DropStatementTest.php @@ -5,12 +5,14 @@ namespace PhpMyAdmin\SqlParser\Tests\Parser; use PhpMyAdmin\SqlParser\Tests\TestCase; +use PHPUnit\Framework\Attributes\DataProvider; class DropStatementTest extends TestCase { /** * @dataProvider dropProvider */ + #[DataProvider('dropProvider')] public function testDrop(string $test): void { $this->runParserTest($test); diff --git a/tests/Parser/ExplainStatementTest.php b/tests/Parser/ExplainStatementTest.php index ed9e5ddf..20fc0fcb 100644 --- a/tests/Parser/ExplainStatementTest.php +++ b/tests/Parser/ExplainStatementTest.php @@ -5,12 +5,14 @@ namespace PhpMyAdmin\SqlParser\Tests\Parser; use PhpMyAdmin\SqlParser\Tests\TestCase; +use PHPUnit\Framework\Attributes\DataProvider; class ExplainStatementTest extends TestCase { /** * @dataProvider explainProvider */ + #[DataProvider('explainProvider')] public function testExplain(string $test): void { $this->runParserTest($test); diff --git a/tests/Parser/InsertStatementTest.php b/tests/Parser/InsertStatementTest.php index e3c070a8..a3bffc36 100644 --- a/tests/Parser/InsertStatementTest.php +++ b/tests/Parser/InsertStatementTest.php @@ -5,12 +5,14 @@ namespace PhpMyAdmin\SqlParser\Tests\Parser; use PhpMyAdmin\SqlParser\Tests\TestCase; +use PHPUnit\Framework\Attributes\DataProvider; class InsertStatementTest extends TestCase { /** * @dataProvider insertProvider */ + #[DataProvider('insertProvider')] public function testInsert(string $test): void { $this->runParserTest($test); diff --git a/tests/Parser/KillStatementTest.php b/tests/Parser/KillStatementTest.php index 335c96a2..21563e6e 100644 --- a/tests/Parser/KillStatementTest.php +++ b/tests/Parser/KillStatementTest.php @@ -7,10 +7,12 @@ 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 */ + #[DataProvider('killProvider')] public function testKill(string $test): void { $this->runParserTest($test); @@ -35,6 +37,7 @@ public static function killProvider(): array } /** @dataProvider buildKillProvider */ + #[DataProvider('buildKillProvider')] public function testBuildKill(string $sql): void { $parser = new Parser($sql); diff --git a/tests/Parser/LoadStatementTest.php b/tests/Parser/LoadStatementTest.php index 7c623bbe..0194b2e3 100644 --- a/tests/Parser/LoadStatementTest.php +++ b/tests/Parser/LoadStatementTest.php @@ -6,6 +6,7 @@ use PhpMyAdmin\SqlParser\Parser; use PhpMyAdmin\SqlParser\Tests\TestCase; +use PHPUnit\Framework\Attributes\DataProvider; class LoadStatementTest extends TestCase { @@ -20,6 +21,7 @@ public function testLoadOptions(): void /** * @dataProvider loadProvider */ + #[DataProvider('loadProvider')] public function testLoad(string $test): void { $this->runParserTest($test); diff --git a/tests/Parser/LockStatementTest.php b/tests/Parser/LockStatementTest.php index b1d25468..de36029f 100644 --- a/tests/Parser/LockStatementTest.php +++ b/tests/Parser/LockStatementTest.php @@ -5,12 +5,14 @@ namespace PhpMyAdmin\SqlParser\Tests\Parser; use PhpMyAdmin\SqlParser\Tests\TestCase; +use PHPUnit\Framework\Attributes\DataProvider; class LockStatementTest extends TestCase { /** * @dataProvider lockProvider */ + #[DataProvider('lockProvider')] public function testLock(string $test): void { $this->runParserTest($test); diff --git a/tests/Parser/ParserLongExportsTest.php b/tests/Parser/ParserLongExportsTest.php index 3351d192..45ff782f 100644 --- a/tests/Parser/ParserLongExportsTest.php +++ b/tests/Parser/ParserLongExportsTest.php @@ -8,6 +8,7 @@ use PhpMyAdmin\SqlParser\Statements\SetStatement; use PhpMyAdmin\SqlParser\Statements\TransactionStatement; use PhpMyAdmin\SqlParser\Tests\TestCase; +use PHPUnit\Framework\Attributes\DataProvider; class ParserLongExportsTest extends TestCase { @@ -103,6 +104,7 @@ public function testParsephpMyAdminDump(): void /** * @dataProvider exportFileProvider */ + #[DataProvider('exportFileProvider')] public function testParseExport(string $test): void { $this->runParserTest($test); diff --git a/tests/Parser/ParserTest.php b/tests/Parser/ParserTest.php index 2d79a7da..402a5b3f 100644 --- a/tests/Parser/ParserTest.php +++ b/tests/Parser/ParserTest.php @@ -9,6 +9,9 @@ use PhpMyAdmin\SqlParser\Tests\TestCase; use PhpMyAdmin\SqlParser\Token; use PhpMyAdmin\SqlParser\TokensList; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\PreserveGlobalState; +use PHPUnit\Framework\Attributes\RunInSeparateProcess; use function sprintf; @@ -17,6 +20,7 @@ class ParserTest extends TestCase /** * @dataProvider parseProvider */ + #[DataProvider('parseProvider')] public function testParse(string $test): void { $this->runParserTest($test); @@ -56,6 +60,8 @@ public function testUnrecognizedKeyword(): void * @runInSeparateProcess * @preserveGlobalState disabled */ + #[RunInSeparateProcess] + #[PreserveGlobalState(false)] public function testError(): void { $parser = new Parser(new TokensList()); diff --git a/tests/Parser/PurgeStatementTest.php b/tests/Parser/PurgeStatementTest.php index 5d61c16b..906b8800 100644 --- a/tests/Parser/PurgeStatementTest.php +++ b/tests/Parser/PurgeStatementTest.php @@ -5,12 +5,14 @@ namespace PhpMyAdmin\SqlParser\Tests\Parser; use PhpMyAdmin\SqlParser\Tests\TestCase; +use PHPUnit\Framework\Attributes\DataProvider; class PurgeStatementTest extends TestCase { /** * @dataProvider purgeProvider */ + #[DataProvider('purgeProvider')] public function testPurge(string $test): void { $this->runParserTest($test); diff --git a/tests/Parser/RenameStatementTest.php b/tests/Parser/RenameStatementTest.php index 003d8dc9..22ebd5cb 100644 --- a/tests/Parser/RenameStatementTest.php +++ b/tests/Parser/RenameStatementTest.php @@ -5,12 +5,14 @@ namespace PhpMyAdmin\SqlParser\Tests\Parser; use PhpMyAdmin\SqlParser\Tests\TestCase; +use PHPUnit\Framework\Attributes\DataProvider; class RenameStatementTest extends TestCase { /** * @dataProvider renameProvider */ + #[DataProvider('renameProvider')] public function testRename(string $test): void { $this->runParserTest($test); diff --git a/tests/Parser/ReplaceStatementTest.php b/tests/Parser/ReplaceStatementTest.php index e05ee655..0c605f84 100644 --- a/tests/Parser/ReplaceStatementTest.php +++ b/tests/Parser/ReplaceStatementTest.php @@ -5,12 +5,14 @@ namespace PhpMyAdmin\SqlParser\Tests\Parser; use PhpMyAdmin\SqlParser\Tests\TestCase; +use PHPUnit\Framework\Attributes\DataProvider; class ReplaceStatementTest extends TestCase { /** * @dataProvider replaceProvider */ + #[DataProvider('replaceProvider')] public function testReplace(string $test): void { $this->runParserTest($test); diff --git a/tests/Parser/RestoreStatementTest.php b/tests/Parser/RestoreStatementTest.php index 12455737..7860d49c 100644 --- a/tests/Parser/RestoreStatementTest.php +++ b/tests/Parser/RestoreStatementTest.php @@ -5,12 +5,14 @@ namespace PhpMyAdmin\SqlParser\Tests\Parser; use PhpMyAdmin\SqlParser\Tests\TestCase; +use PHPUnit\Framework\Attributes\DataProvider; class RestoreStatementTest extends TestCase { /** * @dataProvider restoreProvider */ + #[DataProvider('restoreProvider')] public function testRestore(string $test): void { $this->runParserTest($test); diff --git a/tests/Parser/SelectStatementTest.php b/tests/Parser/SelectStatementTest.php index a7549b79..33c6f084 100644 --- a/tests/Parser/SelectStatementTest.php +++ b/tests/Parser/SelectStatementTest.php @@ -6,6 +6,7 @@ use PhpMyAdmin\SqlParser\Parser; use PhpMyAdmin\SqlParser\Tests\TestCase; +use PHPUnit\Framework\Attributes\DataProvider; class SelectStatementTest extends TestCase { @@ -20,6 +21,7 @@ public function testSelectOptions(): void /** * @dataProvider selectProvider */ + #[DataProvider('selectProvider')] public function testSelect(string $test): void { $this->runParserTest($test); diff --git a/tests/Parser/SetStatementTest.php b/tests/Parser/SetStatementTest.php index 7c5e3ed1..b141e43e 100644 --- a/tests/Parser/SetStatementTest.php +++ b/tests/Parser/SetStatementTest.php @@ -5,12 +5,14 @@ namespace PhpMyAdmin\SqlParser\Tests\Parser; use PhpMyAdmin\SqlParser\Tests\TestCase; +use PHPUnit\Framework\Attributes\DataProvider; class SetStatementTest extends TestCase { /** * @dataProvider setProvider */ + #[DataProvider('setProvider')] public function testSet(string $test): void { $this->runParserTest($test); diff --git a/tests/Parser/TransactionStatementTest.php b/tests/Parser/TransactionStatementTest.php index 13aa5a8f..010a2bc1 100644 --- a/tests/Parser/TransactionStatementTest.php +++ b/tests/Parser/TransactionStatementTest.php @@ -6,6 +6,7 @@ use PhpMyAdmin\SqlParser\Parser; use PhpMyAdmin\SqlParser\Tests\TestCase; +use PHPUnit\Framework\Attributes\DataProvider; class TransactionStatementTest extends TestCase { @@ -23,6 +24,7 @@ public function testBuildWithoutEnd(): void /** * @dataProvider transactionProvider */ + #[DataProvider('transactionProvider')] public function testTransaction(string $test): void { $this->runParserTest($test); diff --git a/tests/Parser/UpdateStatementTest.php b/tests/Parser/UpdateStatementTest.php index 7733ce61..75f01a1e 100644 --- a/tests/Parser/UpdateStatementTest.php +++ b/tests/Parser/UpdateStatementTest.php @@ -5,12 +5,14 @@ namespace PhpMyAdmin\SqlParser\Tests\Parser; use PhpMyAdmin\SqlParser\Tests\TestCase; +use PHPUnit\Framework\Attributes\DataProvider; class UpdateStatementTest extends TestCase { /** * @dataProvider updateProvider */ + #[DataProvider('updateProvider')] public function testUpdate(string $test): void { $this->runParserTest($test); diff --git a/tests/Parser/WithStatementTest.php b/tests/Parser/WithStatementTest.php index 414e0526..82bde6e4 100644 --- a/tests/Parser/WithStatementTest.php +++ b/tests/Parser/WithStatementTest.php @@ -8,6 +8,7 @@ use PhpMyAdmin\SqlParser\Lexer; use PhpMyAdmin\SqlParser\Parser; use PhpMyAdmin\SqlParser\Tests\TestCase; +use PHPUnit\Framework\Attributes\DataProvider; use stdClass; class WithStatementTest extends TestCase @@ -15,6 +16,7 @@ class WithStatementTest extends TestCase /** * @dataProvider parseWith */ + #[DataProvider('parseWith')] public function testParse(string $test): void { $this->runParserTest($test); diff --git a/tests/Utils/BufferedQueryTest.php b/tests/Utils/BufferedQueryTest.php index b5e599c1..6b6be282 100644 --- a/tests/Utils/BufferedQueryTest.php +++ b/tests/Utils/BufferedQueryTest.php @@ -6,6 +6,7 @@ use PhpMyAdmin\SqlParser\Tests\TestCase; use PhpMyAdmin\SqlParser\Utils\BufferedQuery; +use PHPUnit\Framework\Attributes\DataProvider; use function count; use function str_split; @@ -20,6 +21,7 @@ class BufferedQueryTest extends TestCase * * @dataProvider extractProvider */ + #[DataProvider('extractProvider')] public function testExtract( string $query, int $chunkSize, diff --git a/tests/Utils/CLITest.php b/tests/Utils/CLITest.php index 80347378..867c77b9 100644 --- a/tests/Utils/CLITest.php +++ b/tests/Utils/CLITest.php @@ -6,12 +6,15 @@ use PhpMyAdmin\SqlParser\Tests\TestCase; use PhpMyAdmin\SqlParser\Utils\CLI; +use PHPUnit\Framework\Attributes\AllowMockObjectsWithoutExpectations; +use PHPUnit\Framework\Attributes\DataProvider; use function dirname; use function exec; use const PHP_BINARY; +#[AllowMockObjectsWithoutExpectations] class CLITest extends TestCase { /** @@ -56,6 +59,7 @@ public function testGetopt(): void * * @dataProvider highlightParamsProvider */ + #[DataProvider('highlightParamsProvider')] public function testRunHighlight($getopt, string $output, int $result): void { $cli = $this->getCLI($getopt); @@ -131,6 +135,7 @@ public static function highlightParamsProvider(): array * * @dataProvider highlightParamsStdInProvider */ + #[DataProvider('highlightParamsStdInProvider')] public function testRunHighlightStdIn(string $input, $getopt, string $output, int $result): void { $cli = $this->getCLIStdIn($input, $getopt); @@ -199,6 +204,7 @@ public static function highlightParamsStdInProvider(): array * * @dataProvider lintParamsStdInProvider */ + #[DataProvider('lintParamsStdInProvider')] public function testRunLintFromStdIn(string $input, $getopt, string $output, int $result): void { $cli = $this->getCLIStdIn($input, $getopt); @@ -264,6 +270,7 @@ public static function lintParamsStdInProvider(): array * * @dataProvider lintParamsProvider */ + #[DataProvider('lintParamsProvider')] public function testRunLint($getopt, string $output, int $result): void { $cli = $this->getCLI($getopt); @@ -331,6 +338,7 @@ public static function lintParamsProvider(): array * * @dataProvider tokenizeParamsProvider */ + #[DataProvider('tokenizeParamsProvider')] public function testRunTokenize($getopt, string $output, int $result): void { $cli = $this->getCLI($getopt); @@ -386,6 +394,7 @@ public static function tokenizeParamsProvider(): array * * @dataProvider tokenizeParamsStdInProvider */ + #[DataProvider('tokenizeParamsStdInProvider')] public function testRunTokenizeStdIn(string $input, $getopt, string $output, int $result): void { $cli = $this->getCLIStdIn($input, $getopt); @@ -438,6 +447,7 @@ public static function tokenizeParamsStdInProvider(): array /** * @dataProvider stdinParamsProvider */ + #[DataProvider('stdinParamsProvider')] public function testStdinPipe(string $cmd, int $result): void { exec($cmd, $out, $ret); diff --git a/tests/Utils/FormatterTest.php b/tests/Utils/FormatterTest.php index 68a9df0a..3105a4b8 100644 --- a/tests/Utils/FormatterTest.php +++ b/tests/Utils/FormatterTest.php @@ -6,6 +6,7 @@ use PhpMyAdmin\SqlParser\Tests\TestCase; use PhpMyAdmin\SqlParser\Utils\Formatter; +use PHPUnit\Framework\Attributes\DataProvider; use ReflectionMethod; use const PHP_VERSION_ID; @@ -22,6 +23,7 @@ class FormatterTest extends TestCase * * @dataProvider mergeFormatsProvider */ + #[DataProvider('mergeFormatsProvider')] public function testMergeFormats(array $default, array $overriding, array $expected): void { $formatter = $this->createPartialMock(Formatter::class, ['getDefaultOptions', 'getDefaultFormats']); @@ -253,6 +255,7 @@ public static function mergeFormatsProvider(): array * * @dataProvider formatQueriesProviders */ + #[DataProvider('formatQueriesProviders')] public function testFormat(string $query, string $text, string $cli, string $html, array $options = []): void { // Test TEXT format diff --git a/tests/Utils/MiscTest.php b/tests/Utils/MiscTest.php index 6c775ccb..e9f6d475 100644 --- a/tests/Utils/MiscTest.php +++ b/tests/Utils/MiscTest.php @@ -7,6 +7,7 @@ use PhpMyAdmin\SqlParser\Parser; use PhpMyAdmin\SqlParser\Tests\TestCase; use PhpMyAdmin\SqlParser\Utils\Misc; +use PHPUnit\Framework\Attributes\DataProvider; class MiscTest extends TestCase { @@ -19,6 +20,7 @@ class MiscTest extends TestCase * * @dataProvider getAliasesProvider */ + #[DataProvider('getAliasesProvider')] public function testGetAliases(string $query, ?string $db, array $expected): void { $parser = new Parser($query); diff --git a/tests/Utils/QueryTest.php b/tests/Utils/QueryTest.php index a31150d2..30c59813 100644 --- a/tests/Utils/QueryTest.php +++ b/tests/Utils/QueryTest.php @@ -8,6 +8,7 @@ use PhpMyAdmin\SqlParser\Statement; use PhpMyAdmin\SqlParser\Tests\TestCase; use PhpMyAdmin\SqlParser\Utils\Query; +use PHPUnit\Framework\Attributes\DataProvider; use function array_merge; @@ -22,6 +23,7 @@ class QueryTest extends TestCase * * @dataProvider getFlagsProvider */ + #[DataProvider('getFlagsProvider')] public function testGetFlags(string $query, array $expected): void { $parser = new Parser($query); @@ -454,6 +456,7 @@ public function testGetAllTableWithDotsAndReplaceClauseEmptyName(): void * * @dataProvider getTablesProvider */ + #[DataProvider('getTablesProvider')] public function testGetTables(string $query, array $expected): void { $parser = new Parser($query); diff --git a/tests/Utils/RoutineTest.php b/tests/Utils/RoutineTest.php index 2bdf11d6..afb5ebbc 100644 --- a/tests/Utils/RoutineTest.php +++ b/tests/Utils/RoutineTest.php @@ -7,6 +7,7 @@ use PhpMyAdmin\SqlParser\Parser; use PhpMyAdmin\SqlParser\Tests\TestCase; use PhpMyAdmin\SqlParser\Utils\Routine; +use PHPUnit\Framework\Attributes\DataProvider; class RoutineTest extends TestCase { @@ -15,6 +16,7 @@ class RoutineTest extends TestCase * * @dataProvider getReturnTypeProvider */ + #[DataProvider('getReturnTypeProvider')] public function testGetReturnType(string $def, array $expected): void { $this->assertEquals($expected, Routine::getReturnType($def)); @@ -115,6 +117,7 @@ public static function getReturnTypeProvider(): array * * @dataProvider getParameterProvider */ + #[DataProvider('getParameterProvider')] public function testGetParameter(string $def, array $expected): void { $this->assertEquals($expected, Routine::getParameter($def)); @@ -224,6 +227,7 @@ public static function getParameterProvider(): array * * @dataProvider getParametersProvider */ + #[DataProvider('getParametersProvider')] public function testGetParameters(string $query, array $expected): void { $parser = new Parser($query); diff --git a/tests/Utils/TableTest.php b/tests/Utils/TableTest.php index e0e7924e..1e55225b 100644 --- a/tests/Utils/TableTest.php +++ b/tests/Utils/TableTest.php @@ -7,6 +7,7 @@ use PhpMyAdmin\SqlParser\Parser; use PhpMyAdmin\SqlParser\Tests\TestCase; use PhpMyAdmin\SqlParser\Utils\Table; +use PHPUnit\Framework\Attributes\DataProvider; class TableTest extends TestCase { @@ -24,6 +25,7 @@ class TableTest extends TestCase * * @dataProvider getForeignKeysProvider */ + #[DataProvider('getForeignKeysProvider')] public function testGetForeignKeys(string $query, array $expected): void { $parser = new Parser($query); @@ -149,6 +151,7 @@ public static function getForeignKeysProvider(): array * * @dataProvider getFieldsProvider */ + #[DataProvider('getFieldsProvider')] public function testGetFields(string $query, array $expected): void { $parser = new Parser($query); diff --git a/tests/Utils/TokensTest.php b/tests/Utils/TokensTest.php index 3cf69055..0fde312a 100644 --- a/tests/Utils/TokensTest.php +++ b/tests/Utils/TokensTest.php @@ -7,6 +7,7 @@ use PhpMyAdmin\SqlParser\Tests\TestCase; use PhpMyAdmin\SqlParser\Token; use PhpMyAdmin\SqlParser\Utils\Tokens; +use PHPUnit\Framework\Attributes\DataProvider; class TokensTest extends TestCase { @@ -16,6 +17,7 @@ class TokensTest extends TestCase * * @dataProvider replaceTokensProvider */ + #[DataProvider('replaceTokensProvider')] public function testReplaceTokens(string $list, array $find, array $replace, string $expected): void { $this->assertEquals($expected, Tokens::replaceTokens($list, $find, $replace)); @@ -48,6 +50,7 @@ public static function replaceTokensProvider(): array * * @dataProvider matchProvider */ + #[DataProvider('matchProvider')] public function testMatch(Token $token, array $pattern, bool $expected): void { $this->assertSame($expected, Tokens::match($token, $pattern));