prepare for multiple files

This commit is contained in:
TomasVotruba 2020-06-18 23:13:27 +02:00
parent 9abc75916a
commit fc8fc08872
6 changed files with 52 additions and 20 deletions

10
abz/Entity/OtherClass.php Normal file
View File

@ -0,0 +1,10 @@
<?php
declare(strict_types=1);
namespace App\Entity;
final class OtherClass implements SomeContract
{
}

View File

@ -0,0 +1,10 @@
<?php
declare(strict_types=1);
namespace App\Entity;
interface SomeContract
{
}

View File

@ -212,6 +212,7 @@
"Rector\\NetteUtilsCodeQuality\\Tests\\": "rules/nette-utils-code-quality/tests"
},
"classmap": [
"abz",
"rules/cakephp/tests/Rector/Name/ImplicitShortClassNameUseStatementRector/Source",
"rules/symfony/tests/Rector/FrameworkBundle/ContainerGetToConstructorInjectionRector/Source",
"rules/autodiscovery/tests/Rector/FileSystem/MoveInterfacesToContractNamespaceDirectoryRector/Expected",

View File

@ -2,11 +2,7 @@ imports:
- { resource: "create-rector.yaml", ignore_errors: 'not_found' }
services:
# @todo add compiler pass that makes every Rector public service
# _defaults:
# public: true
Rector\Php72\Rector\Each\ListEachRector: null
Rector\Autodiscovery\Rector\FileSystem\MoveInterfacesToContractNamespaceDirectoryRector: null
parameters:
# bleeding edge feature

View File

@ -0,0 +1,12 @@
<?php
declare(strict_types=1);
namespace Rector\Autodiscovery\Tests\Rector\FileSystem\MoveInterfacesToContractNamespaceDirectoryRector\Source\Entity;
final class SameClassImplementEntity implements \Rector\Autodiscovery\Tests\Rector\FileSystem\MoveInterfacesToContractNamespaceDirectoryRector\Source\Contract\RandomInterface
{
public function returnAnother(): \Rector\Autodiscovery\Tests\Rector\FileSystem\MoveInterfacesToContractNamespaceDirectoryRector\Source\Contract\RandomInterface
{
}
}

View File

@ -12,27 +12,22 @@ final class MoveInterfacesToContractNamespaceDirectoryRectorTest extends Abstrac
{
/**
* @dataProvider provideData()
* @param string[] $extraFiles
* @param string[][] $extraFiles
*/
public function test(
string $originalFile,
string $expectedFileLocation,
string $expectedFileContent,
array $extraFiles = [],
?string $extraExpectedFileLocation = null,
?string $expectedExtraFileContent = null
array $extraFiles = []
): void {
$this->doTestFile($originalFile, $extraFiles);
$this->doTestFile($originalFile, array_keys($extraFiles));
$this->assertFileExists($expectedFileLocation);
$this->assertFileEquals($expectedFileContent, $expectedFileLocation);
if ($extraExpectedFileLocation !== null) {
$this->assertFileExists($extraExpectedFileLocation);
if ($expectedExtraFileContent !== null) {
$this->assertFileEquals($expectedExtraFileContent, $extraExpectedFileLocation);
}
foreach ($extraFiles as $extraFile) {
$this->assertFileExists($extraFile['location']);
$this->assertFileEquals($extraFile['content'], $extraFile['location']);
}
}
@ -42,10 +37,18 @@ final class MoveInterfacesToContractNamespaceDirectoryRectorTest extends Abstrac
__DIR__ . '/Source/Entity/RandomInterface.php',
$this->getFixtureTempDirectory() . '/Source/Contract/RandomInterface.php',
__DIR__ . '/Expected/ExpectedRandomInterface.php',
// extra file
[__DIR__ . '/Source/RandomInterfaceUseCase.php'],
$this->getFixtureTempDirectory() . '/Source/RandomInterfaceUseCase.php',
__DIR__ . '/Expected/ExpectedRandomInterfaceUseCase.php',
// extra files
[
__DIR__ . '/Source/RandomInterfaceUseCase.php' => [
'location' => $this->getFixtureTempDirectory() . '/Source/RandomInterfaceUseCase.php',
'content' => __DIR__ . '/Expected/ExpectedRandomInterfaceUseCase.php',
],
__DIR__ . '/Source/Entity/SameClassImplementEntity.php' => [
'location' => $this->getFixtureTempDirectory() . '/Source/Entity/SameClassImplementEntity.php',
'content' => __DIR__ . '/Expected/Entity/ExpectedSameClassImplementEntity.php',
],
],
];
// skip nette control factory