* Dariusz Rumiński * * This source file is subject to the MIT license that is bundled * with this source code in the file LICENSE. */ namespace PhpCsFixer\Tests\Fixer\Alias; use PhpCsFixer\Fixer\Alias\NoAliasFunctionsFixer; use PhpCsFixer\Tests\Test\AbstractFixerTestCase; /** * @author Vladimir Reznichenko * @author Dariusz Rumiński * * @internal * * @covers \PhpCsFixer\Fixer\Alias\NoAliasFunctionsFixer * * @extends AbstractFixerTestCase<\PhpCsFixer\Fixer\Alias\NoAliasFunctionsFixer> * * @phpstan-import-type _AutogeneratedInputConfiguration from \PhpCsFixer\Fixer\Alias\NoAliasFunctionsFixer */ final class NoAliasFunctionsFixerTest extends AbstractFixerTestCase { /** * @param _AutogeneratedInputConfiguration $configuration * * @dataProvider provideFixCases */ public function testFix(string $expected, ?string $input = null, array $configuration = []): void { $this->fixer->configure($configuration); $this->doTest($expected, $input); } public static function provideFixCases(): iterable { $defaultSets = [ '@internal', '@IMAP', '@pg', ]; foreach (self::provideAllCases() as $set => $cases) { if (\in_array($set, $defaultSets, true)) { yield from $cases; } else { foreach ($cases as $case) { yield [$case[0]]; } } } // static case to fix - in case previous generation is broken yield [ ' mxrr' => [ 'pos(); new join(); new \join(); new ScopeB\join(mt_rand(0, 100)); } }', ]; yield '@internal' => [ ' ['@internal']], ]; yield '@IMAP' => [ ' ['@IMAP']], ]; yield '@mbreg' => [ ' ['@mbreg']], ]; yield '@all' => [ ' ['@all']], ]; yield '@IMAP, @mbreg' => [ ' ['@IMAP', '@mbreg']], ]; yield '@time' => [ ' ['@time']], ]; yield '@exif' => [ ' ['@exif']], ]; foreach (self::provideAllCases() as $set => $cases) { foreach ($cases as $case) { yield [ $case[0], $case[1] ?? null, ['sets' => [$set]], ]; } } } /** * @dataProvider provideFix81Cases * * @requires PHP 8.1 */ public function testFix81(string $expected, ?string $input = null): void { $this->doTest($expected, $input); } /** * @return iterable */ public static function provideFix81Cases(): iterable { yield 'simple 8.1' => [ '> $allAliases */ $allAliases = $reflectionConstant->getValue(); $sets = $allAliases; unset($sets['@time']); // Tested manually $sets = array_keys($sets); foreach ($sets as $set) { $aliases = $allAliases[$set]; $cases = []; foreach ($aliases as $alias => $master) { // valid cases $cases[] = ["{$alias}(\$a);"]; $cases[] = [" $cases; } } }