diff --git a/rules-tests/PHPUnit100/Rector/Class_/RemoveNamedArgsInDataProviderRector/Fixture/provide_data_with_multiple_yields.php.inc b/rules-tests/PHPUnit100/Rector/Class_/RemoveNamedArgsInDataProviderRector/Fixture/provide_data_with_multiple_yields.php.inc deleted file mode 100644 index 868ca845..00000000 --- a/rules-tests/PHPUnit100/Rector/Class_/RemoveNamedArgsInDataProviderRector/Fixture/provide_data_with_multiple_yields.php.inc +++ /dev/null @@ -1,49 +0,0 @@ - 100, 'another' => 'arg1']; - yield ['secondNamedArg' => 27, 'theOther' => 'arg2']; - yield [3.2 => 32, 'nonOfOne' => 3]; - } -} - -?> ------ - diff --git a/rules-tests/PHPUnit100/Rector/Class_/RemoveNamedArgsInDataProviderRector/Fixture/provide_data_with_named_and_not_named_args.php.inc b/rules-tests/PHPUnit100/Rector/Class_/RemoveNamedArgsInDataProviderRector/Fixture/provide_data_with_named_and_not_named_args.php.inc deleted file mode 100644 index 5a7e5586..00000000 --- a/rules-tests/PHPUnit100/Rector/Class_/RemoveNamedArgsInDataProviderRector/Fixture/provide_data_with_named_and_not_named_args.php.inc +++ /dev/null @@ -1,45 +0,0 @@ - 100, null]; - } -} - -?> ------ - diff --git a/rules-tests/PHPUnit100/Rector/Class_/RemoveNamedArgsInDataProviderRector/Fixture/provide_data_with_named_args.php.inc b/rules-tests/PHPUnit100/Rector/Class_/RemoveNamedArgsInDataProviderRector/Fixture/provide_data_with_named_args.php.inc deleted file mode 100644 index 048ccbe1..00000000 --- a/rules-tests/PHPUnit100/Rector/Class_/RemoveNamedArgsInDataProviderRector/Fixture/provide_data_with_named_args.php.inc +++ /dev/null @@ -1,45 +0,0 @@ - 100, 'another' => 'arg1']; - } -} - -?> ------ - diff --git a/rules-tests/PHPUnit100/Rector/Class_/RemoveNamedArgsInDataProviderRector/Fixture/provide_data_with_return.php.inc b/rules-tests/PHPUnit100/Rector/Class_/RemoveNamedArgsInDataProviderRector/Fixture/provide_data_with_return.php.inc deleted file mode 100644 index 7be2287a..00000000 --- a/rules-tests/PHPUnit100/Rector/Class_/RemoveNamedArgsInDataProviderRector/Fixture/provide_data_with_return.php.inc +++ /dev/null @@ -1,45 +0,0 @@ - 100, 'another' => 'arg1']; - } -} - -?> ------ - diff --git a/rules-tests/PHPUnit100/Rector/Class_/RemoveNamedArgsInDataProviderRector/Fixture/provide_data_with_several_named_and_not_named_args.php.inc b/rules-tests/PHPUnit100/Rector/Class_/RemoveNamedArgsInDataProviderRector/Fixture/provide_data_with_several_named_and_not_named_args.php.inc deleted file mode 100644 index 7a8fb037..00000000 --- a/rules-tests/PHPUnit100/Rector/Class_/RemoveNamedArgsInDataProviderRector/Fixture/provide_data_with_several_named_and_not_named_args.php.inc +++ /dev/null @@ -1,63 +0,0 @@ - 100, - null, - fn() => 'G-EASY', - 'Key' => fn() => 'Post Malone', - 'another' => 'arg1', - new \Exception(), - true, - 'false' => false - ]; - } -} - -?> ------ - 'G-EASY', - fn() => 'Post Malone', - 'arg1', - new \Exception(), - true, - false - ]; - } -} - -?> diff --git a/rules-tests/PHPUnit100/Rector/Class_/RemoveNamedArgsInDataProviderRector/Fixture/skip_provide_data_with_no_named_args.php.inc b/rules-tests/PHPUnit100/Rector/Class_/RemoveNamedArgsInDataProviderRector/Fixture/skip_provide_data_with_no_named_args.php.inc deleted file mode 100644 index a7d9df0a..00000000 --- a/rules-tests/PHPUnit100/Rector/Class_/RemoveNamedArgsInDataProviderRector/Fixture/skip_provide_data_with_no_named_args.php.inc +++ /dev/null @@ -1,22 +0,0 @@ - diff --git a/rules-tests/PHPUnit100/Rector/Class_/RemoveNamedArgsInDataProviderRector/RemoveNamedArgsInDataProviderRectorTest.php b/rules-tests/PHPUnit100/Rector/Class_/RemoveNamedArgsInDataProviderRector/RemoveNamedArgsInDataProviderRectorTest.php deleted file mode 100644 index f88f5947..00000000 --- a/rules-tests/PHPUnit100/Rector/Class_/RemoveNamedArgsInDataProviderRector/RemoveNamedArgsInDataProviderRectorTest.php +++ /dev/null @@ -1,28 +0,0 @@ -doTestFile($filePath); - } - - public static function provideData(): Iterator - { - return self::yieldFilesFromDirectory(__DIR__ . '/Fixture'); - } - - public function provideConfigFilePath(): string - { - return __DIR__ . '/config/configured_rule.php'; - } -} diff --git a/rules-tests/PHPUnit100/Rector/Class_/RemoveNamedArgsInDataProviderRector/config/configured_rule.php b/rules-tests/PHPUnit100/Rector/Class_/RemoveNamedArgsInDataProviderRector/config/configured_rule.php deleted file mode 100644 index ca8cce71..00000000 --- a/rules-tests/PHPUnit100/Rector/Class_/RemoveNamedArgsInDataProviderRector/config/configured_rule.php +++ /dev/null @@ -1,10 +0,0 @@ -rule(RemoveNamedArgsInDataProviderRector::class); -}; diff --git a/rules/PHPUnit100/Rector/Class_/RemoveNamedArgsInDataProviderRector.php b/rules/PHPUnit100/Rector/Class_/RemoveNamedArgsInDataProviderRector.php index d9036cb5..706d70e5 100644 --- a/rules/PHPUnit100/Rector/Class_/RemoveNamedArgsInDataProviderRector.php +++ b/rules/PHPUnit100/Rector/Class_/RemoveNamedArgsInDataProviderRector.php @@ -5,28 +5,19 @@ namespace Rector\PHPUnit\PHPUnit100\Rector\Class_; use PhpParser\Node; -use PhpParser\Node\Expr; -use PhpParser\Node\Expr\Array_; -use PhpParser\Node\Expr\Yield_; use PhpParser\Node\Stmt\Class_; -use PhpParser\Node\Stmt\Expression; -use Rector\PHPUnit\NodeAnalyzer\TestsNodeAnalyzer; -use Rector\PHPUnit\NodeFinder\DataProviderClassMethodFinder; +use Rector\Configuration\Deprecation\Contract\DeprecatedInterface; +use Rector\Exception\ShouldNotHappenException; use Rector\Rector\AbstractRector; use Symplify\RuleDocGenerator\ValueObject\CodeSample\CodeSample; use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; /** - * @see \Rector\PHPUnit\Tests\PHPUnit100\Rector\Class_\RemoveNamedArgsInDataProviderRector\RemoveNamedArgsInDataProviderRectorTest + * @deprecated This rule is deprecated, as named arguments in data providers are on purpose to match test method + * parameters. PHPUnit handles their mapping itself, so there is nothing to remove. */ -final class RemoveNamedArgsInDataProviderRector extends AbstractRector +final class RemoveNamedArgsInDataProviderRector extends AbstractRector implements DeprecatedInterface { - public function __construct( - private readonly TestsNodeAnalyzer $testsNodeAnalyzer, - private readonly DataProviderClassMethodFinder $dataProviderClassMethodFinder, - ) { - } - public function getRuleDefinition(): RuleDefinition { return new RuleDefinition('Remove named arguments in data provider', [ @@ -82,57 +73,13 @@ public function getNodeTypes(): array } /** - * @param Class_ $node + * @param Class_ $node */ public function refactor(Node $node): ?Node { - if (! $this->testsNodeAnalyzer->isInTestClass($node)) { - return null; - } - - $hasChanged = false; - - $dataProviders = $this->dataProviderClassMethodFinder->find($node); - foreach ($dataProviders as $dataProvider) { - /** @var Expression $stmt */ - foreach ($dataProvider->getStmts() ?? [] as $stmt) { - $expr = $stmt->expr; - $arrayChanged = false; - if ($expr instanceof Yield_) { - if (! $expr->value instanceof Array_) { - return null; - } - - $arrayChanged = $this->handleArray($expr->value); - } elseif ($expr instanceof Array_) { - $arrayChanged = $this->handleArray($expr); - } - - if ($arrayChanged) { - $hasChanged = true; - } - } - } - - if ($hasChanged) { - return $node; - } - - return null; - } - - private function handleArray(Array_ $array): bool - { - $hasChanged = false; - foreach ($array->items as $item) { - if (! $item->key instanceof Expr) { - continue; - } - - $item->key = null; - $hasChanged = true; - } - - return $hasChanged; + throw new ShouldNotHappenException(sprintf( + '"%s" is deprecated, as named arguments in data providers are on purpose to match test method parameters and are handled by PHPUnit itself.', + self::class, + )); } }