FilesystemTest.php 2.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\Framework\Test\Unit;
  7. use \Magento\Framework\Filesystem;
  8. use Magento\Framework\App\Filesystem\DirectoryList;
  9. class FilesystemTest extends \PHPUnit\Framework\TestCase
  10. {
  11. /** @var Filesystem */
  12. protected $_filesystem;
  13. /** @var \Magento\Framework\Filesystem\Directory\ReadFactory|\PHPUnit_Framework_MockObject_MockObject */
  14. protected $_dirReadFactoryMock;
  15. /** @var \Magento\Framework\Filesystem\Directory\WriteFactory|\PHPUnit_Framework_MockObject_MockObject */
  16. protected $_dirWriteFactoryMock;
  17. /** @var \Magento\Framework\App\Filesystem\DirectoryList|\PHPUnit_Framework_MockObject_MockObject */
  18. protected $_directoryListMock;
  19. protected function setUp()
  20. {
  21. $this->_dirReadFactoryMock = $this->createMock(\Magento\Framework\Filesystem\Directory\ReadFactory::class);
  22. $this->_directoryListMock = $this->createMock(\Magento\Framework\App\Filesystem\DirectoryList::class);
  23. $this->_dirWriteFactoryMock = $this->createMock(\Magento\Framework\Filesystem\Directory\WriteFactory::class);
  24. $this->_filesystem = new Filesystem(
  25. $this->_directoryListMock,
  26. $this->_dirReadFactoryMock,
  27. $this->_dirWriteFactoryMock
  28. );
  29. }
  30. public function testGetDirectoryRead()
  31. {
  32. /** @var \Magento\Framework\Filesystem\Directory\ReadInterface $dirReadMock */
  33. $dirReadMock = $this->createMock(\Magento\Framework\Filesystem\Directory\ReadInterface::class);
  34. $this->_dirReadFactoryMock->expects($this->once())->method('create')->will($this->returnValue($dirReadMock));
  35. $this->assertEquals($dirReadMock, $this->_filesystem->getDirectoryRead(DirectoryList::ROOT));
  36. }
  37. public function testGetDirectoryReadByPath()
  38. {
  39. /** @var \Magento\Framework\Filesystem\Directory\ReadInterface $dirReadMock */
  40. $dirReadMock = $this->createMock(\Magento\Framework\Filesystem\Directory\ReadInterface::class);
  41. $this->_dirReadFactoryMock->expects($this->once())->method('create')->will($this->returnValue($dirReadMock));
  42. $this->assertEquals($dirReadMock, $this->_filesystem->getDirectoryReadByPath('path/to/some/file'));
  43. }
  44. public function testGetDirectoryWrite()
  45. {
  46. /** @var \Magento\Framework\Filesystem\Directory\WriteInterface $dirWriteMock */
  47. $dirWriteMock = $this->createMock(\Magento\Framework\Filesystem\Directory\WriteInterface::class);
  48. $this->_dirWriteFactoryMock->expects($this->once())->method('create')->will($this->returnValue($dirWriteMock));
  49. $this->assertEquals($dirWriteMock, $this->_filesystem->getDirectoryWrite(DirectoryList::ROOT));
  50. }
  51. public function testGetUri()
  52. {
  53. $this->_directoryListMock->expects($this->once())->method('getUrlPath')->with('code')->willReturn('result');
  54. $this->assertEquals('result', $this->_filesystem->getUri('code'));
  55. }
  56. }