Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
DirectoryScannerTest.php
Go to the documentation of this file.
1 <?php
7 
8 class DirectoryScannerTest extends \PHPUnit\Framework\TestCase
9 {
13  protected $_model;
14 
18  protected $_testDir;
19 
20  protected function setUp()
21  {
22  $this->_model = new \Magento\Setup\Module\Di\Code\Scanner\DirectoryScanner();
23  $this->_testDir = str_replace('\\', '/', realpath(__DIR__ . '/../../') . '/_files');
24  }
25 
26  public function testScan()
27  {
28  $filePatterns = [
29  'php' => '/.*\.php$/',
30  'etc' => '/\/app\/etc\/.*\.xml$/',
31  'config' => '/\/etc\/(config([a-z0-9\.]*)?|adminhtml\/system)\.xml$/',
32  'view' => '/\/view\/[a-z0-9A-Z\/\.]*\.xml$/',
33  'design' => '/\/app\/design\/[a-z0-9A-Z\/\.]*\.xml$/',
34  ];
35 
36  $actual = $this->_model->scan($this->_testDir, $filePatterns);
37  $expected = [
38  'php' => [
39  $this->_testDir . '/additional.php',
40  $this->_testDir . '/app/bootstrap.php',
41  $this->_testDir . '/app/code/Magento/SomeModule/Helper/Test.php',
42  $this->_testDir . '/app/code/Magento/SomeModule/Model/Test.php',
43  ],
44  'config' => [
45  $this->_testDir . '/app/code/Magento/SomeModule/etc/adminhtml/system.xml',
46  $this->_testDir . '/app/code/Magento/SomeModule/etc/config.xml',
47  ],
48  'view' => [$this->_testDir . '/app/code/Magento/SomeModule/view/frontend/default.xml'],
49  'design' => [$this->_testDir . '/app/design/adminhtml/Magento/backend/layout.xml'],
50  'etc' => [$this->_testDir . '/app/etc/additional.xml', $this->_testDir . '/app/etc/config.xml'],
51  ];
52  $this->assertEquals(sort($expected['php']), sort($actual['php']), 'Incorrect php files list');
53  $this->assertEquals(sort($expected['config']), sort($actual['config']), 'Incorrect config files list');
54  $this->assertEquals(sort($expected['view']), sort($actual['view']), 'Incorrect view files list');
55  $this->assertEquals(sort($expected['design']), sort($actual['design']), 'Incorrect design files list');
56  $this->assertEquals(sort($expected['etc']), sort($actual['etc']), 'Incorrect etc files list');
57  }
58 }
defined('TESTS_BP')||define('TESTS_BP' __DIR__
Definition: _bootstrap.php:60