9 use Symfony\Component\Console\Tester\CommandTester;
21 private $commandTester;
26 'Magento_A' =>
__DIR__ .
'/_files/root/app/code/Magento/A',
27 'Magento_B' =>
__DIR__ .
'/_files/root/app/code/Magento/B' 30 $objectManagerProvider = $this->createMock(\
Magento\Setup\Model\ObjectManagerProvider::class);
32 $objectManagerProvider->expects($this->once())->method(
'get')->willReturn(
$objectManager);
34 $themePackageListMock = $this->createMock(\
Magento\Framework\
View\Design\Theme\ThemePackageList::class);
35 $componentRegistrarMock = $this->createMock(\
Magento\Framework\Component\ComponentRegistrar::class);
36 $componentRegistrarMock->expects($this->any())->method(
'getPaths')->will($this->returnValue($modules));
37 $dirSearchMock = $this->createMock(\
Magento\Framework\Component\DirSearch::class);
38 $objectManager->expects($this->any())->method(
'get')->will($this->returnValueMap([
39 [\
Magento\Framework\
View\Design\Theme\ThemePackageList::class, $themePackageListMock],
40 [\
Magento\Framework\Component\ComponentRegistrar::class, $componentRegistrarMock],
41 [\
Magento\Framework\Component\DirSearch::class, $dirSearchMock]
45 $this->commandTester =
new CommandTester($this->command);
50 if (file_exists(
__DIR__ .
'/_files/output/circular.csv')) {
57 $this->commandTester->execute(
58 [
'--output' =>
__DIR__ .
'/_files/output/circular.csv']
60 $this->assertEquals(
'Report successfully processed.' . PHP_EOL, $this->commandTester->getDisplay());
62 $this->assertContains(
63 '"Circular dependencies:","Total number of chains"' . PHP_EOL .
',2' . PHP_EOL,
66 $this->assertContains(
'"Circular dependencies for each module:",' . PHP_EOL, $fileContents);
67 $this->assertContains(
68 'magento/module-a,1' . PHP_EOL .
'magento/module-a->magento/module-b->magento/module-a' . PHP_EOL,
71 $this->assertContains(
72 'magento/module-b,1' . PHP_EOL .
'magento/module-b->magento/module-a->magento/module-b' . PHP_EOL,
defined('TESTS_BP')||define('TESTS_BP' __DIR__