Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
ReverseResolverTest.php
Go to the documentation of this file.
1 <?php
7 
8 class ReverseResolverTest extends \PHPUnit\Framework\TestCase
9 {
13  protected $_model;
14 
18  protected $_moduleList;
19 
23  protected $_moduleDirs;
24 
25  protected function setUp()
26  {
27  $this->_moduleList = $this->createMock(\Magento\Framework\Module\ModuleListInterface::class);
28  $this->_moduleDirs = $this->createMock(\Magento\Framework\Module\Dir::class);
29  $this->_model = new \Magento\Framework\Module\Dir\ReverseResolver($this->_moduleList, $this->_moduleDirs);
30  }
31 
37  public function testGetModuleName($path, $expectedResult)
38  {
39  $this->_moduleList->expects($this->once())->method('getNames')->will(
40  $this->returnValue(['Fixture_ModuleOne', 'Fixture_ModuleTwo'])
41  );
42  $this->_moduleDirs->expects(
43  $this->atLeastOnce()
44  )->method(
45  'getDir'
46  )->will(
47  $this->returnValueMap(
48  [
49  ['Fixture_ModuleOne', '', 'app/code/Fixture/ModuleOne'],
50  ['Fixture_ModuleTwo', '', 'app/code/Fixture/ModuleTwo'],
51  ]
52  )
53  );
54  $this->assertSame($expectedResult, $this->_model->getModuleName($path));
55  }
56 
60  public function getModuleNameDataProvider()
61  {
62  return [
63  'module root dir' => ['app/code/Fixture/ModuleOne', 'Fixture_ModuleOne'],
64  'module root dir trailing slash' => ['app/code/Fixture/ModuleOne/', 'Fixture_ModuleOne'],
65  'module root dir backward slash' => ['app/code\\Fixture\\ModuleOne', 'Fixture_ModuleOne'],
66  'dir in module' => ['app/code/Fixture/ModuleTwo/etc', 'Fixture_ModuleTwo'],
67  'dir in module trailing slash' => ['app/code/Fixture/ModuleTwo/etc/', 'Fixture_ModuleTwo'],
68  'dir in module backward slash' => ['app/code/Fixture/ModuleTwo\\etc', 'Fixture_ModuleTwo'],
69  'file in module' => ['app/code/Fixture/ModuleOne/etc/config.xml', 'Fixture_ModuleOne'],
70  'file in module backward slash' => [
71  'app\\code\\Fixture\\ModuleOne\\etc\\config.xml',
72  'Fixture_ModuleOne',
73  ],
74  'unknown module' => ['app/code/Unknown/Module', null]
75  ];
76  }
77 }