FilesTest.php 2.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\Framework\App\Test\Unit\Utility;
  7. use Magento\Framework\App\Utility\Files;
  8. use Magento\Framework\Component\ComponentRegistrar;
  9. /**
  10. * Test for Utility/Files class.
  11. *
  12. * @package Magento\Framework\App\Test\Unit\Utility
  13. */
  14. class FilesTest extends \PHPUnit\Framework\TestCase
  15. {
  16. /**
  17. * @var \Magento\Framework\Component\DirSearch|\PHPUnit_Framework_MockObject_MockObject
  18. */
  19. private $dirSearchMock;
  20. protected function setUp()
  21. {
  22. $objectManager = new \Magento\Framework\TestFramework\Unit\Helper\ObjectManager($this);
  23. $this->dirSearchMock = $this->createMock(\Magento\Framework\Component\DirSearch::class);
  24. $fileUtilities = $objectManager->getObject(
  25. Files::class,
  26. [
  27. 'dirSearch' => $this->dirSearchMock
  28. ]
  29. );
  30. Files::setInstance($fileUtilities);
  31. }
  32. protected function tearDown()
  33. {
  34. Files::setInstance();
  35. }
  36. public function testGetConfigFiles()
  37. {
  38. $this->dirSearchMock->expects($this->once())
  39. ->method('collectFiles')
  40. ->with(ComponentRegistrar::MODULE, '/etc/some.file')
  41. ->willReturn(['/one/some.file', '/two/some.file', 'some.other.file']);
  42. $expected = ['/one/some.file', '/two/some.file'];
  43. $actual = Files::init()->getConfigFiles('some.file', ['some.other.file'], false);
  44. $this->assertSame($expected, $actual);
  45. // Check that the result is cached (collectFiles() is called only once)
  46. $this->assertSame($expected, $actual);
  47. }
  48. public function testGetDbSchemaFiles()
  49. {
  50. $this->dirSearchMock->expects($this->once())
  51. ->method('collectFiles')
  52. ->with(ComponentRegistrar::MODULE, '/etc/db_schema.xml')
  53. ->willReturn(['First/Module/etc/db_schema.xml', 'Second/Module/etc/db_schema.xml']);
  54. $expected = [
  55. 'First/Module/etc/db_schema.xml' => ['First/Module/etc/db_schema.xml'],
  56. 'Second/Module/etc/db_schema.xml' => ['Second/Module/etc/db_schema.xml'],
  57. ];
  58. $actual = Files::init()->getDbSchemaFiles('db_schema.xml', ['Second/Module/etc/db_schema.xml']);
  59. $this->assertSame($expected, $actual);
  60. }
  61. public function testGetLayoutConfigFiles()
  62. {
  63. $this->dirSearchMock->expects($this->once())
  64. ->method('collectFiles')
  65. ->with(ComponentRegistrar::THEME, '/etc/some.file')
  66. ->willReturn(['/one/some.file', '/two/some.file']);
  67. $expected = ['/one/some.file', '/two/some.file'];
  68. $actual = Files::init()->getLayoutConfigFiles('some.file', false);
  69. $this->assertSame($expected, $actual);
  70. // Check that the result is cached (collectFiles() is called only once)
  71. $this->assertSame($expected, $actual);
  72. }
  73. }