* 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\ControlStructure; use PhpCsFixer\Preg; use PhpCsFixer\Tests\Test\AbstractFixerTestCase; use PhpCsFixer\WhitespacesFixerConfig; /** * @internal * * @covers \PhpCsFixer\Fixer\ControlStructure\ControlStructureContinuationPositionFixer * * @extends AbstractFixerTestCase<\PhpCsFixer\Fixer\ControlStructure\ControlStructureContinuationPositionFixer> * * @phpstan-import-type _AutogeneratedInputConfiguration from \PhpCsFixer\Fixer\ControlStructure\ControlStructureContinuationPositionFixer */ final class ControlStructureContinuationPositionFixerTest 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 { yield 'else (same line, default)' => [ ' [ ' [ ' [ ' [ ' [ ' 'next_line'], ]; yield 'elseif (next line)' => [ ' 'next_line'], ]; yield 'else if (next line)' => [ ' 'next_line'], ]; yield 'do while (next line)' => [ ' 'next_line'], ]; yield 'try catch finally (next line)' => [ ' 'next_line'], ]; yield 'else with comment after closing brace' => [ ' [ ' [ ' [ ' [ ' [ 'fixer->configure($configuration); } $this->fixer->setWhitespacesConfig( new WhitespacesFixerConfig(' ', "\r\n") ); $this->doTest($expected, $input); } public static function provideWithWhitespacesConfigCases(): iterable { foreach (self::provideFixCases() as $label => $case) { yield $label => [ Preg::replace('/\n/', "\r\n", $case[0]), isset($case[1]) ? Preg::replace('/\n/', "\r\n", $case[1]) : null, $case[2] ?? null, ]; } } }