* 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; use PhpCsFixer\AbstractFunctionReferenceFixer; use PhpCsFixer\AccessibleObject\AccessibleObject; use PhpCsFixer\FixerDefinition\FixerDefinitionInterface; use PhpCsFixer\Tokenizer\Tokens; /** * @internal * * @covers \PhpCsFixer\AbstractFunctionReferenceFixer */ final class AbstractFunctionReferenceFixerTest extends TestCase { /** * @param null|list $expected * * @dataProvider provideAbstractFunctionReferenceFixerCases */ public function testAbstractFunctionReferenceFixer( ?array $expected, string $source, string $functionNameToSearch, int $start = 0, ?int $end = null ): void { $fixer = $this->createAbstractFunctionReferenceFixerDouble(); self::assertTrue($fixer->isRisky()); $tokens = Tokens::fromCode($source); self::assertSame( $expected, AccessibleObject::create($fixer)->find( $functionNameToSearch, $tokens, $start, $end ) ); self::assertFalse($tokens->isChanged()); } public static function provideAbstractFunctionReferenceFixerCases(): iterable { yield 'simple case I' => [ [1, 2, 3], ' [ [2, 3, 4], ' [ null, ' [ [2, 3, 4], ' [ null, ' [ null, ' [ null, ' [ null, ' [ null, '