* 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\Operator; use PhpCsFixer\Tests\Test\AbstractFixerTestCase; /** * @internal * * @covers \PhpCsFixer\Fixer\AbstractShortOperatorFixer * @covers \PhpCsFixer\Fixer\Operator\AssignNullCoalescingToCoalesceEqualFixer * * @extends AbstractFixerTestCase<\PhpCsFixer\Fixer\Operator\AssignNullCoalescingToCoalesceEqualFixer> */ final class AssignNullCoalescingToCoalesceEqualFixerTest extends AbstractFixerTestCase { /** * @dataProvider provideFixCases */ public function testFix(string $expected, ?string $input = null): void { $this->doTest($expected, $input); } /** * @return iterable */ public static function provideFixCases(): iterable { yield 'simple' => [ ' [ ' [ ' [ ' [ ' [ ' [ ' [ ' [ 'b ??= 1;', 'b = $a->b ?? 1;', ]; yield 'object II' => [ 'b[0]->{1} ??= 1;', 'b[0]->{1} = $a->b[0]->{1} ?? 1;', ]; yield 'simple, before ;' => [ ' [ ' [ ' [ ' [ '', '', ]; yield 'simple, before ) I' => [ ' [ ' [ '', '', ]; yield 'simple, 10x' => [ ' [ ' [ ' [ ' [ ' [ '', ]; yield [' [ ' [ ' [ ' [ 'test ??= $i; } }', 'test = $this->test ?? $i; } }', ]; } /** * @dataProvider provideFixPre80Cases * * @requires PHP <8.0 */ public function testFixPre80(string $expected, ?string $input = null): void { $this->doTest($expected, $input); } /** * @return iterable */ public static function provideFixPre80Cases(): iterable { yield 'mixed array' => [ ' [ ' [ '