mirror of
https://github.com/rectorphp/rector.git
synced 2024-06-26 20:53:31 +00:00
make FixtureSplitter return SmartFileInfo
This commit is contained in:
parent
f27f50bf9c
commit
df3c56f616
|
@ -13,7 +13,7 @@ final class ReplaceEventManagerWithEventSubscriberRectorTest extends AbstractRec
|
|||
{
|
||||
$this->doTestFile(__DIR__ . '/Fixture/fixture.php.inc');
|
||||
|
||||
$expectedEventFilePath = dirname($this->originalTempFile) . '/Event/SomeClassCopyEvent.php';
|
||||
$expectedEventFilePath = $this->originalTempFileInfo->getPath() . '/Event/SomeClassCopyEvent.php';
|
||||
|
||||
$this->assertFileExists($expectedEventFilePath);
|
||||
$this->assertFileEquals(__DIR__ . '/Source/ExpectedSomeClassCopyEvent.php', $expectedEventFilePath);
|
||||
|
|
|
@ -18,7 +18,7 @@ final class ReplaceMagicPropertyEventWithEventClassRectorTest extends AbstractRe
|
|||
{
|
||||
$this->doTestFile(__DIR__ . '/Fixture/simple_event.php.inc');
|
||||
|
||||
$expectedEventFilePath = dirname($this->originalTempFile) . '/Event/FileManagerUploadEvent.php';
|
||||
$expectedEventFilePath = $this->originalTempFileInfo->getPath() . '/Event/FileManagerUploadEvent.php';
|
||||
$this->assertFileExists($expectedEventFilePath);
|
||||
$this->assertFileEquals(__DIR__ . '/Source/ExpectedFileManagerUploadEvent.php', $expectedEventFilePath);
|
||||
}
|
||||
|
@ -27,7 +27,7 @@ final class ReplaceMagicPropertyEventWithEventClassRectorTest extends AbstractRe
|
|||
{
|
||||
$this->doTestFile(__DIR__ . '/Fixture/duplicated_event_params.php.inc');
|
||||
|
||||
$expectedEventFilePath = dirname($this->originalTempFile) . '/Event/DuplicatedEventParamsUploadEvent.php';
|
||||
$expectedEventFilePath = $this->originalTempFileInfo->getPath() . '/Event/DuplicatedEventParamsUploadEvent.php';
|
||||
$this->assertFileExists($expectedEventFilePath);
|
||||
$this->assertFileEquals(
|
||||
__DIR__ . '/Source/ExpectedDuplicatedEventParamsUploadEvent.php',
|
||||
|
|
|
@ -42,9 +42,9 @@ abstract class AbstractRectorTestCase extends AbstractGenericRectorTestCase
|
|||
protected $parameterProvider;
|
||||
|
||||
/**
|
||||
* @var string
|
||||
* @var SmartFileInfo
|
||||
*/
|
||||
protected $originalTempFile;
|
||||
protected $originalTempFileInfo;
|
||||
|
||||
/**
|
||||
* @var FixtureSplitter
|
||||
|
@ -134,28 +134,22 @@ abstract class AbstractRectorTestCase extends AbstractGenericRectorTestCase
|
|||
|
||||
protected function doTestFile(string $fixtureFile): void
|
||||
{
|
||||
$smartFileInfo = new SmartFileInfo($fixtureFile);
|
||||
[$originalFile, $changedFile] = $this->fixtureSplitter->splitContentToOriginalFileAndExpectedFile(
|
||||
$smartFileInfo,
|
||||
$fixtureFileInfo = new SmartFileInfo($fixtureFile);
|
||||
|
||||
[$originalFileInfo, $expectedFileInfo] = $this->fixtureSplitter->splitContentToOriginalFileAndExpectedFile(
|
||||
$fixtureFileInfo,
|
||||
$this->autoloadTestFixture
|
||||
);
|
||||
|
||||
$this->nodeScopeResolver->setAnalysedFiles([$originalFile]);
|
||||
$this->nodeScopeResolver->setAnalysedFiles([$originalFileInfo->getRealPath()]);
|
||||
|
||||
$this->doTestFileMatchesExpectedContent(
|
||||
$originalFile,
|
||||
$changedFile,
|
||||
$smartFileInfo->getRelativeFilePathFromCwd()
|
||||
);
|
||||
$this->doTestFileMatchesExpectedContent($originalFileInfo, $expectedFileInfo, $fixtureFileInfo);
|
||||
|
||||
$this->originalTempFile = $originalFile;
|
||||
$this->originalTempFileInfo = $originalFileInfo;
|
||||
|
||||
// runnable?
|
||||
if (Strings::contains(FileSystem::read($originalFile), RunnableInterface::class)) {
|
||||
$originalFileInfo = new SmartFileInfo($originalFile);
|
||||
$changedFileInfo = new SmartFileInfo($changedFile);
|
||||
|
||||
$this->assertOriginalAndFixedFileResultEquals($originalFileInfo, $changedFileInfo);
|
||||
if (Strings::contains($originalFileInfo->getContents(), RunnableInterface::class)) {
|
||||
$this->assertOriginalAndFixedFileResultEquals($originalFileInfo, $expectedFileInfo);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -250,39 +244,32 @@ abstract class AbstractRectorTestCase extends AbstractGenericRectorTestCase
|
|||
}
|
||||
|
||||
private function doTestFileMatchesExpectedContent(
|
||||
string $originalFile,
|
||||
string $expectedFile,
|
||||
string $fixtureFile
|
||||
SmartFileInfo $originalFileInfo,
|
||||
SmartFileInfo $expectedFileInfo,
|
||||
SmartFileInfo $fixtureFileInfo
|
||||
): void {
|
||||
$this->setParameter(Option::SOURCE, [$originalFile]);
|
||||
|
||||
$smartFileInfo = new SmartFileInfo($originalFile);
|
||||
$this->setParameter(Option::SOURCE, [$originalFileInfo->getRealPath()]);
|
||||
|
||||
// life-cycle trio :)
|
||||
$this->fileProcessor->parseFileInfoToLocalCache($smartFileInfo);
|
||||
$this->fileProcessor->refactor($smartFileInfo);
|
||||
$this->fileProcessor->parseFileInfoToLocalCache($originalFileInfo);
|
||||
$this->fileProcessor->refactor($originalFileInfo);
|
||||
|
||||
$changedContent = $this->fileProcessor->printToString($smartFileInfo);
|
||||
$changedContent = $this->fileProcessor->printToString($originalFileInfo);
|
||||
|
||||
$causedByFixtureMessage = $this->createCausedByFixtureMessage($fixtureFile);
|
||||
$causedByFixtureMessage = $fixtureFileInfo->getRelativeFilePathFromCwd();
|
||||
|
||||
$removedAndAddedFilesProcessor = self::$container->get(RemovedAndAddedFilesProcessor::class);
|
||||
$removedAndAddedFilesProcessor->run();
|
||||
|
||||
try {
|
||||
$this->assertStringEqualsFile($expectedFile, $changedContent, $causedByFixtureMessage);
|
||||
$this->assertStringEqualsFile($expectedFileInfo->getRealPath(), $changedContent, $causedByFixtureMessage);
|
||||
} catch (ExpectationFailedException $expectationFailedException) {
|
||||
$expectedFileContent = FileSystem::read($expectedFile);
|
||||
$expectedFileContent = $expectedFileInfo->getContents();
|
||||
|
||||
$this->assertStringMatchesFormat($expectedFileContent, $changedContent, $causedByFixtureMessage);
|
||||
}
|
||||
}
|
||||
|
||||
private function createCausedByFixtureMessage(string $fixtureFile): string
|
||||
{
|
||||
return (new SmartFileInfo($fixtureFile))->getRelativeFilePathFromCwd();
|
||||
}
|
||||
|
||||
private function createRectorRepositoryContainer(): void
|
||||
{
|
||||
if (self::$allRectorContainer === null) {
|
||||
|
|
|
@ -22,7 +22,7 @@ final class FixtureSplitter
|
|||
}
|
||||
|
||||
/**
|
||||
* @return string[]
|
||||
* @return SmartFileInfo[]
|
||||
*/
|
||||
public function splitContentToOriginalFileAndExpectedFile(
|
||||
SmartFileInfo $smartFileInfo,
|
||||
|
@ -41,7 +41,10 @@ final class FixtureSplitter
|
|||
require_once $originalFile;
|
||||
}
|
||||
|
||||
return [$originalFile, $expectedFile];
|
||||
$originalFileInfo = new SmartFileInfo($originalFile);
|
||||
$expectedFileInfo = new SmartFileInfo($expectedFile);
|
||||
|
||||
return [$originalFileInfo, $expectedFileInfo];
|
||||
}
|
||||
|
||||
public function createTemporaryPathWithPrefix(SmartFileInfo $smartFileInfo, string $prefix): string
|
||||
|
|
Loading…
Reference in New Issue
Block a user