File tree Expand file tree Collapse file tree
rules/Renaming/Rector/Name
tests/Renaming/Rector/Name/RenameClassRector Expand file tree Collapse file tree Original file line number Diff line number Diff line change 1515use PHPStan \Reflection \ReflectionProvider ;
1616use Rector \Configuration \RenamedClassesDataCollector ;
1717use Rector \Contract \Rector \ConfigurableRectorInterface ;
18+ use Rector \Exception \Configuration \InvalidConfigurationException ;
1819use Rector \NodeTypeResolver \Node \AttributeKey ;
1920use Rector \Rector \AbstractRector ;
2021use Rector \Renaming \NodeManipulator \ClassRenamer ;
@@ -119,6 +120,15 @@ public function configure(array $configuration): void
119120 Assert::allString ($ configuration );
120121 Assert::allString (array_keys ($ configuration ));
121122
123+ foreach ($ configuration as $ oldClass => $ newClass ) {
124+ if ($ oldClass === $ newClass ) {
125+ throw new InvalidConfigurationException (sprintf (
126+ 'Rename "%s" class to a different one, as the old and new class name are the same ' ,
127+ $ oldClass
128+ ));
129+ }
130+ }
131+
122132 $ this ->renamedClassesDataCollector ->addOldToNewClasses ($ configuration );
123133 }
124134
Original file line number Diff line number Diff line change 1+ <?php
2+
3+ declare (strict_types=1 );
4+
5+ namespace Rector \Tests \Renaming \Rector \Name \RenameClassRector ;
6+
7+ use Rector \Exception \Configuration \InvalidConfigurationException ;
8+ use Rector \Renaming \Rector \Name \RenameClassRector ;
9+ use Rector \Testing \PHPUnit \AbstractLazyTestCase ;
10+
11+ final class SameOldToNewClassTest extends AbstractLazyTestCase
12+ {
13+ public function test (): void
14+ {
15+ $ renameClassRector = $ this ->make (RenameClassRector::class);
16+
17+ $ this ->expectException (InvalidConfigurationException::class);
18+
19+ $ renameClassRector ->configure ([
20+ 'App\SomeClass ' => 'App\SomeClass ' ,
21+ ]);
22+ }
23+ }
You can’t perform that action at this time.
0 commit comments