Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
All Data Structures Namespaces Files Functions Variables Pages
XmlCatalogGenerateCommandTest.php
Go to the documentation of this file.
1 <?php
8 
10 use Symfony\Component\Console\Tester\CommandTester;
11 
12 class XmlCatalogGenerateCommandTest extends \PHPUnit\Framework\TestCase
13 {
17  private $command;
18 
19  public function testExecuteBadType()
20  {
21  $fixtureXmlFile = __DIR__ . '/_files/test.xml';
22 
23  $filesMock = $this->createPartialMock(\Magento\Framework\App\Utility\Files::class, ['getXmlCatalogFiles']);
24  $filesMock->expects($this->at(0))
25  ->method('getXmlCatalogFiles')
26  ->will($this->returnValue([[$fixtureXmlFile]]));
27  $filesMock->expects($this->at(1))
28  ->method('getXmlCatalogFiles')
29  ->will($this->returnValue([]));
30  $urnResolverMock = $this->createMock(\Magento\Framework\Config\Dom\UrnResolver::class);
31  $urnResolverMock->expects($this->once())
32  ->method('getRealPath')
33  ->with($this->equalTo('urn:magento:framework:Module/etc/module.xsd'))
34  ->will($this->returnValue($fixtureXmlFile));
35 
36  $phpstormFormatMock = $this->createMock(\Magento\Developer\Model\XmlCatalog\Format\PhpStorm::class);
37  $phpstormFormatMock->expects($this->once())
38  ->method('generateCatalog')
39  ->with(
40  $this->equalTo(['urn:magento:framework:Module/etc/module.xsd' => $fixtureXmlFile]),
41  $this->equalTo('test')
42  )->will($this->returnValue(null));
43 
44  $formats = ['phpstorm' => $phpstormFormatMock];
45  $readFactory = $this->createMock(\Magento\Framework\Filesystem\Directory\ReadFactory::class);
46  $readDirMock = $this->createMock(\Magento\Framework\Filesystem\Directory\ReadInterface::class);
47 
48  $content = file_get_contents($fixtureXmlFile);
49 
50  $readDirMock->expects($this->once())
51  ->method('readFile')
52  ->with($this->equalTo('test.xml'))
53  ->will($this->returnValue($content));
54  $readFactory->expects($this->once())
55  ->method('create')
56  ->will($this->returnValue($readDirMock));
57 
58  $this->command = new XmlCatalogGenerateCommand(
59  $filesMock,
60  $urnResolverMock,
61  $readFactory,
62  $formats
63  );
64 
65  $commandTester = new CommandTester($this->command);
66  $commandTester->execute([XmlCatalogGenerateCommand::IDE_FILE_PATH_ARGUMENT => 'test']);
67  $this->assertEquals('', $commandTester->getDisplay());
68  }
69 }
defined('TESTS_BP')||define('TESTS_BP' __DIR__
Definition: _bootstrap.php:60