* 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\ClassNotation; use PhpCsFixer\ConfigurationException\InvalidFixerConfigurationException; use PhpCsFixer\Tests\Test\AbstractFixerTestCase; /** * @author Dariusz Rumiński * * @internal * * @covers \PhpCsFixer\Fixer\ClassNotation\VisibilityRequiredFixer */ final class VisibilityRequiredFixerTest extends AbstractFixerTestCase { public function testFixProperties(): void { $expected = <<<'EOF' doTest($expected, $input); } public function testFixPropertiesAfterMethod(): void { $input = <<<'EOF' doTest($expected, $input); } /** * @dataProvider provideFixMethodsCases */ public function testFixMethods(string $expected, string $input = null): void { $this->doTest($expected, $input); } public static function provideFixMethodsCases(): iterable { yield [ <<<'EOF' doTest($expected); } public function testLeaveFunctionsAloneWithVariablesMatchingOopWords(): void { $expected = <<<'EOF' doTest($expected); } public function testLeaveFunctionsAloneInsideConditionals(): void { $expected = <<<'EOF' doTest($expected); } public function testLeaveFunctionsAloneInsideConditionalsWithOopWordInComment(): void { $expected = <<<'EOF' doTest($expected); } public function testLeaveFunctionsAloneWithOopWordInComment(): void { $expected = <<<'EOF' doTest($expected); } public function testLeaveFunctionsAloneOutsideClassesWithOopWordInInlineHtml(): void { $expected = <<<'EOF'
doTest($expected); } public function testLeaveFunctionsAloneOutsideClassesWithOopWordInStringValue(): void { $expected = <<<'EOF' doTest($expected); } public function testLeaveFunctionsAloneOutsideClassesWithOopWordInFunctionName(): void { $expected = <<<'EOF' doTest($expected); } public function testLeaveFunctionsAloneAfterClass(): void { $expected = <<<'EOF' doTest($expected); } public function testCurlyOpenSyntax(): void { $expected = <<<'EOF' doTest($expected); } public function testDollarOpenCurlyBracesSyntax(): void { $expected = <<<'EOF' doTest($expected); } public function testLeaveJavascriptOutsidePhpAlone(): void { $expected = <<<'EOF' EOF; $this->doTest($expected); } public function testLeaveJavascriptInStringAlone(): void { $expected = <<<'EOF' function foo(bar) { alert(bar); } '; } EOF; $this->doTest($expected); } public function testLeaveJavascriptInVariableAlone(): void { $expected = <<<'EOF' function foo(bar) { alert(bar); } JAVASCRIPT; return $script; } } EOF; $this->doTest($expected); } public function testFixCommaSeparatedProperty(): void { $expected = <<<'EOF' doTest($expected, $input); } public function testFixesVarDeclarationsWithArrayValue(): void { $expected = <<<'EOF' doTest($expected, $input); } public function testInvalidConfigurationType(): void { $this->expectException(InvalidFixerConfigurationException::class); $this->expectExceptionMessageMatches('/^\[visibility_required\] Invalid configuration: The option "elements" .*\.$/'); $this->fixer->configure(['elements' => [null]]); } public function testInvalidConfigurationValue(): void { $this->expectException(InvalidFixerConfigurationException::class); $this->expectExceptionMessageMatches('/^\[visibility_required\] Invalid configuration: The option "elements" .*\.$/'); $this->fixer->configure(['elements' => ['_unknown_']]); } /** * @dataProvider provideFixClassConstCases */ public function testFixClassConst(string $expected, string $input): void { $this->fixer->configure(['elements' => ['const']]); $this->doTest($expected, $input); } public static function provideFixClassConstCases(): iterable { yield [ 'doTest($expected, $input); } public function testAnonymousClassFixing(): void { $this->doTest( 'doTest( 'fixer->configure(['elements' => ['property', 'method', 'const']]); $this->doTest( 'doTest( 'doTest($expected, $input); } public static function provideFixCases(): iterable { yield [ 'doTest($expected, $input); } public static function provideFix80Cases(): iterable { yield [ 'doTest($expected, $input); } public static function provideFix81Cases(): iterable { yield [ 'test());', 'test());', ]; } /** * @requires PHP 8.2 * * @dataProvider provideFix82Cases */ public function testFix82(string $expected, ?string $input = null): void { $this->doTest($expected, $input); } public static function provideFix82Cases(): iterable { yield [ '