DependenciesShowFrameworkCommandTest.php 3.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\Setup\Console\Command;
  7. use Symfony\Component\Console\Tester\CommandTester;
  8. class DependenciesShowFrameworkCommandTest extends \PHPUnit\Framework\TestCase
  9. {
  10. /**
  11. * @var DependenciesShowFrameworkCommand
  12. */
  13. private $command;
  14. /**
  15. * @var CommandTester
  16. */
  17. private $commandTester;
  18. public function setUp()
  19. {
  20. $modules = [
  21. 'Magento_A' => __DIR__ . '/_files/root/app/code/Magento/A',
  22. 'Magento_B' => __DIR__ . '/_files/root/app/code/Magento/B'
  23. ];
  24. $objectManagerProvider = $this->createMock(\Magento\Setup\Model\ObjectManagerProvider::class);
  25. $objectManager = $this->createMock(\Magento\Framework\App\ObjectManager::class);
  26. $objectManagerProvider->expects($this->once())->method('get')->willReturn($objectManager);
  27. $themePackageListMock = $this->createMock(\Magento\Framework\View\Design\Theme\ThemePackageList::class);
  28. $componentRegistrarMock = $this->createMock(\Magento\Framework\Component\ComponentRegistrar::class);
  29. $componentRegistrarMock->expects($this->any())->method('getPaths')->will($this->returnValue($modules));
  30. $dirSearchMock = $this->createMock(\Magento\Framework\Component\DirSearch::class);
  31. $dirSearchMock->expects($this->once())->method('collectFiles')->willReturn(
  32. [
  33. __DIR__ . '/_files/root/app/code/Magento/A/etc/module.xml',
  34. __DIR__ . '/_files/root/app/code/Magento/B/etc/module.xml'
  35. ]
  36. );
  37. $objectManager->expects($this->any())->method('get')->will($this->returnValueMap([
  38. [\Magento\Framework\View\Design\Theme\ThemePackageList::class, $themePackageListMock],
  39. [\Magento\Framework\Component\ComponentRegistrar::class, $componentRegistrarMock],
  40. [\Magento\Framework\Component\DirSearch::class, $dirSearchMock]
  41. ]));
  42. $this->command = new DependenciesShowFrameworkCommand($componentRegistrarMock, $objectManagerProvider);
  43. $this->commandTester = new CommandTester($this->command);
  44. }
  45. public function tearDown()
  46. {
  47. if (file_exists(__DIR__ . '/_files/output/framework.csv')) {
  48. unlink(__DIR__ . '/_files/output/framework.csv');
  49. }
  50. }
  51. public function testExecute()
  52. {
  53. $this->commandTester->execute(
  54. ['--output' => __DIR__ . '/_files/output/framework.csv']
  55. );
  56. $this->assertEquals('Report successfully processed.' . PHP_EOL, $this->commandTester->getDisplay());
  57. $fileContents = file_get_contents(__DIR__ . '/_files/output/framework.csv');
  58. $this->assertContains(
  59. '"Dependencies of framework:","Total number"' . PHP_EOL . ',2' . PHP_EOL,
  60. $fileContents
  61. );
  62. $this->assertContains('"Dependencies for each module:",' . PHP_EOL, $fileContents);
  63. $this->assertContains('"Magento\A",1' . PHP_EOL . '" -- Magento\Framework",2' . PHP_EOL, $fileContents);
  64. $this->assertContains('"Magento\B",1' . PHP_EOL . '" -- Magento\Framework",2' . PHP_EOL, $fileContents);
  65. }
  66. }