FileProviderTest.php 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\Theme\Test\Unit\Model\Theme;
  7. use Magento\Theme\Model\Theme\FileProvider;
  8. class FileProviderTest extends \PHPUnit\Framework\TestCase
  9. {
  10. /**
  11. * @var FileProvider
  12. */
  13. protected $model;
  14. /**
  15. * @var \Magento\Theme\Model\ResourceModel\Theme\File\Collection|\PHPUnit_Framework_MockObject_MockObject
  16. */
  17. protected $file;
  18. protected function setUp()
  19. {
  20. $fileFactory = $this->getMockBuilder(\Magento\Theme\Model\ResourceModel\Theme\File\CollectionFactory::class)
  21. ->setMethods(['create'])
  22. ->disableOriginalConstructor()
  23. ->getMock();
  24. $this->file = $this->getMockBuilder(\Magento\Theme\Model\ResourceModel\Theme\File\Collection::class)
  25. ->disableOriginalConstructor()
  26. ->getMock();
  27. $fileFactory->expects($this->once())
  28. ->method('create')
  29. ->willReturn($this->file);
  30. /** @var $fileFactory \Magento\Theme\Model\ResourceModel\Theme\File\CollectionFactory */
  31. $this->model = new FileProvider($fileFactory);
  32. }
  33. /**
  34. * @test
  35. * @return void
  36. */
  37. public function testGetItems()
  38. {
  39. $items = ['item'];
  40. $theme = $this->getMockBuilder(\Magento\Framework\View\Design\ThemeInterface::class)->getMock();
  41. $filters = ['name' => 'filter'];
  42. $this->file->expects($this->once())
  43. ->method('addThemeFilter')
  44. ->with($theme)
  45. ->willReturnSelf();
  46. $this->file->expects($this->once())
  47. ->method('addFieldToFilter')
  48. ->with('name', 'filter')
  49. ->willReturnSelf();
  50. $this->file->expects($this->once())
  51. ->method('setDefaultOrder')
  52. ->willReturnSelf();
  53. $this->file->expects($this->once())
  54. ->method('getItems')
  55. ->willReturn($items);
  56. /** @var $theme \Magento\Framework\View\Design\ThemeInterface */
  57. $this->assertEquals($items, $this->model->getItems($theme, $filters));
  58. }
  59. }