diff --git a/rules-tests/Arguments/Rector/ClassMethod/ArgumentAdderRector/Fixture/skip_named_arguments.inc b/rules-tests/Arguments/Rector/ClassMethod/ArgumentAdderRector/Fixture/skip_named_arguments.php.inc similarity index 100% rename from rules-tests/Arguments/Rector/ClassMethod/ArgumentAdderRector/Fixture/skip_named_arguments.inc rename to rules-tests/Arguments/Rector/ClassMethod/ArgumentAdderRector/Fixture/skip_named_arguments.php.inc diff --git a/rules-tests/Php73/Rector/FuncCall/SetcookieRector/Fixture/skip_non_integer_third_arg.inc b/rules-tests/Php73/Rector/FuncCall/SetcookieRector/Fixture/skip_non_integer_third_arg.php.inc similarity index 100% rename from rules-tests/Php73/Rector/FuncCall/SetcookieRector/Fixture/skip_non_integer_third_arg.inc rename to rules-tests/Php73/Rector/FuncCall/SetcookieRector/Fixture/skip_non_integer_third_arg.php.inc diff --git a/rules-tests/Php83/Rector/BooleanAnd/JsonValidateRector/Fixture/skip_json_validate_invalid_depth.php copy.inc b/rules-tests/Php83/Rector/BooleanAnd/JsonValidateRector/Fixture/skip_json_validate_invalid_depth.php.inc similarity index 100% rename from rules-tests/Php83/Rector/BooleanAnd/JsonValidateRector/Fixture/skip_json_validate_invalid_depth.php copy.inc rename to rules-tests/Php83/Rector/BooleanAnd/JsonValidateRector/Fixture/skip_json_validate_invalid_depth.php.inc diff --git a/rules-tests/Php85/Rector/ArrayDimFetch/ArrayFirstLastRector/Fixture/skip_as_assign_variable.inc b/rules-tests/Php85/Rector/ArrayDimFetch/ArrayFirstLastRector/Fixture/skip_as_assign_variable.php.inc similarity index 100% rename from rules-tests/Php85/Rector/ArrayDimFetch/ArrayFirstLastRector/Fixture/skip_as_assign_variable.inc rename to rules-tests/Php85/Rector/ArrayDimFetch/ArrayFirstLastRector/Fixture/skip_as_assign_variable.php.inc diff --git a/rules-tests/TypeDeclaration/Rector/ClassMethod/AddParamTypeBasedOnPHPUnitDataProviderRector/Fixture/skip_with_nested_method.inc b/rules-tests/TypeDeclaration/Rector/ClassMethod/AddParamTypeBasedOnPHPUnitDataProviderRector/Fixture/skip_with_nested_method.php.inc similarity index 100% rename from rules-tests/TypeDeclaration/Rector/ClassMethod/AddParamTypeBasedOnPHPUnitDataProviderRector/Fixture/skip_with_nested_method.inc rename to rules-tests/TypeDeclaration/Rector/ClassMethod/AddParamTypeBasedOnPHPUnitDataProviderRector/Fixture/skip_with_nested_method.php.inc diff --git a/rules-tests/TypeDeclaration/Rector/ClassMethod/BoolReturnTypeFromBooleanStrictReturnsRector/Fixture/skip_possible_void.inc b/rules-tests/TypeDeclaration/Rector/ClassMethod/BoolReturnTypeFromBooleanStrictReturnsRector/Fixture/skip_possible_void.php.inc similarity index 100% rename from rules-tests/TypeDeclaration/Rector/ClassMethod/BoolReturnTypeFromBooleanStrictReturnsRector/Fixture/skip_possible_void.inc rename to rules-tests/TypeDeclaration/Rector/ClassMethod/BoolReturnTypeFromBooleanStrictReturnsRector/Fixture/skip_possible_void.php.inc diff --git a/rules-tests/TypeDeclaration/Rector/ClassMethod/ReturnUnionTypeRector/Fixture/change_nullable_union_different_in_parent.php copy.inc b/rules-tests/TypeDeclaration/Rector/ClassMethod/ReturnUnionTypeRector/Fixture/change_nullable_union_different_in_parent.php copy.inc deleted file mode 100644 index 8f3f70b0b42..00000000000 --- a/rules-tests/TypeDeclaration/Rector/ClassMethod/ReturnUnionTypeRector/Fixture/change_nullable_union_different_in_parent.php copy.inc +++ /dev/null @@ -1,59 +0,0 @@ - ------ - \ No newline at end of file diff --git a/scripts/no-php-file-in-fixtures.php b/scripts/no-php-file-in-fixtures.php index 80d956a425d..59107888ad6 100644 --- a/scripts/no-php-file-in-fixtures.php +++ b/scripts/no-php-file-in-fixtures.php @@ -30,36 +30,41 @@ public function __construct() } /** + * @param string[] $ruleTestDirectories * @param string[] $testDirectories * @return Command::SUCCESS|Command::FAILURE */ - public function run(array $testDirectories): int + public function run(array $ruleTestDirectories, array $testDirectories): int { - $phpFiles = $this->findPhpFiles($testDirectories); + $allFixtureFiles = $this->findFixtureFiles($ruleTestDirectories); - $allFixtureFiles = $this->findFixtureFiles($testDirectories); + $invalidFiles = [ + ...$this->findPhpFiles($ruleTestDirectories), + // ".inc" alone is never picked up, only "*.php.inc" is + ...$this->findIncompleteIncFiles([...$ruleTestDirectories, ...$testDirectories]), + ]; - $relativePhpFiles = []; - foreach ($phpFiles as $phpFile) { - $relativeFilePath = substr($phpFile->getRealPath(), strlen(getcwd()) + 1); + $relativeInvalidFilePaths = []; + foreach ($invalidFiles as $invalidFile) { + $relativeFilePath = substr($invalidFile->getRealPath(), strlen(getcwd()) + 1); // should skip? if (in_array($relativeFilePath, self::EXCLUDED_FILES, true)) { continue; } - $relativePhpFiles[] = $relativeFilePath; + $relativeInvalidFilePaths[] = $relativeFilePath; } - if ($relativePhpFiles === []) { + if ($relativeInvalidFilePaths === []) { $this->symfonyStyle->success(sprintf('All %d fixtures are valid', count($allFixtureFiles))); return Command::SUCCESS; } $this->symfonyStyle->error( - 'The following "*.php* files were found in /Fixtures directory, but only "*.php.inc" files are picked up and allowed. Rename their suffix or remove them' + 'The following files were found in /Fixtures directory, but only "*.php.inc" files are picked up and allowed. Rename their suffix or remove them' ); - $this->symfonyStyle->listing($relativePhpFiles); + $this->symfonyStyle->listing($relativeInvalidFilePaths); return Command::FAILURE; } @@ -84,6 +89,27 @@ private function findPhpFiles(array $directories): array return iterator_to_array($finder->getIterator()); } + /** + * @param string[] $directories + * @return SplFileInfo[] + */ + private function findIncompleteIncFiles(array $directories): array + { + Assert::allDirectory($directories); + + $finder = new Finder() + ->files() + ->in($directories) + ->path('/Fixture') + ->path('/Fixture*') + ->notPath('Source') + ->name('*.inc') + ->notName('*.php.inc') + ->sortByName(); + + return iterator_to_array($finder->getIterator()); + } + /** * @param string[] $directories * @return SplFileInfo[] @@ -106,4 +132,4 @@ private function findFixtureFiles(array $directories): array $noPhpFileInFixturesDetector = new NoPhpFileInFixturesDetector(); -exit($noPhpFileInFixturesDetector->run([__DIR__ . '/../rules-tests'])); +exit($noPhpFileInFixturesDetector->run([__DIR__ . '/../rules-tests'], [__DIR__ . '/../tests'])); diff --git a/tests/Issues/InlineTags/Fixture/with_punctuation.inc b/tests/Issues/InlineTags/Fixture/with_punctuation.php.inc similarity index 84% rename from tests/Issues/InlineTags/Fixture/with_punctuation.inc rename to tests/Issues/InlineTags/Fixture/with_punctuation.php.inc index 0f6e4f70631..6ac8a5eff6f 100644 --- a/tests/Issues/InlineTags/Fixture/with_punctuation.inc +++ b/tests/Issues/InlineTags/Fixture/with_punctuation.php.inc @@ -17,7 +17,7 @@ class WithDescription extends TestCase use PHPUnit\Framework\TestCase; /** - * @copyright Some Value. {@link https://example.com}. + * @copyright Some Value. Something.({@link https://example.com}). */ #[\PHPUnit\Framework\Attributes\CoversClass(\Tests\BarController::class)] class WithDescription extends TestCase