magento2-docker/dev/tests/integration/testsuite/Magento/Setup/Console/Command/DependenciesShowModulesComm...

78 lines
3.0 KiB
PHP
Executable File

<?php
/**
* Copyright © Magento, Inc. All rights reserved.
* See COPYING.txt for license details.
*/
namespace Magento\Setup\Console\Command;
use Magento\Framework\Component\ComponentRegistrar;
use Symfony\Component\Console\Tester\CommandTester;
class DependenciesShowModulesCommandTest extends \PHPUnit\Framework\TestCase
{
/**
* @var DependenciesShowModulesCommand
*/
private $command;
/**
* @var CommandTester
*/
private $commandTester;
protected function setUp(): void
{
$modules = [
'Magento_A' => __DIR__ . '/_files/root/app/code/Magento/A',
'Magento_B' => __DIR__ . '/_files/root/app/code/Magento/B'
];
$objectManagerProvider = $this->createMock(\Magento\Setup\Model\ObjectManagerProvider::class);
$objectManager = $this->createMock(\Magento\Framework\App\ObjectManager::class);
$objectManagerProvider->expects($this->once())->method('get')->willReturn($objectManager);
$themePackageListMock = $this->createMock(\Magento\Framework\View\Design\Theme\ThemePackageList::class);
$componentRegistrarMock = $this->createMock(\Magento\Framework\Component\ComponentRegistrar::class);
$componentRegistrarMock->expects($this->any())->method('getPaths')->willReturn($modules);
$dirSearchMock = $this->createMock(\Magento\Framework\Component\DirSearch::class);
$objectManager->expects($this->any())->method('get')->willReturnMap([
[\Magento\Framework\View\Design\Theme\ThemePackageList::class, $themePackageListMock],
[\Magento\Framework\Component\ComponentRegistrar::class, $componentRegistrarMock],
[\Magento\Framework\Component\DirSearch::class, $dirSearchMock]
]);
$this->command = new DependenciesShowModulesCommand($objectManagerProvider);
$this->commandTester = new CommandTester($this->command);
}
protected function tearDown(): void
{
if (file_exists(__DIR__ . '/_files/output/modules.csv')) {
unlink(__DIR__ . '/_files/output/modules.csv');
}
}
public function testExecute()
{
$this->commandTester->execute(
['--output' => __DIR__ . '/_files/output/modules.csv']
);
$this->assertEquals('Report successfully processed.' . PHP_EOL, $this->commandTester->getDisplay());
$fileContents = file_get_contents(__DIR__ . '/_files/output/modules.csv');
$this->assertStringContainsString(
',All,Hard,Soft' . PHP_EOL . '"Total number of dependencies",2,2,0' . PHP_EOL,
$fileContents
);
$this->assertStringContainsString('"Dependencies for each module:",All,Hard,Soft'. PHP_EOL, $fileContents);
$this->assertStringContainsString(
'magento/module-a,1,1,0' . PHP_EOL . '" -- magento/module-b",,1,0' . PHP_EOL,
$fileContents
);
$this->assertStringContainsString(
'magento/module-b,1,1,0' . PHP_EOL . '" -- magento/module-a",,1,0' . PHP_EOL,
$fileContents
);
}
}