PhysicalTest.php 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. /**
  7. * Test theme domain physical model
  8. */
  9. namespace Magento\Theme\Test\Unit\Model\Theme\Domain;
  10. class PhysicalTest extends \PHPUnit\Framework\TestCase
  11. {
  12. public function testCreateVirtualTheme()
  13. {
  14. $physicalTheme = $this->createPartialMock(\Magento\Theme\Model\Theme::class, ['__wakeup']);
  15. $physicalTheme->setData(['parent_id' => 10, 'theme_title' => 'Test Theme']);
  16. $copyService = $this->createPartialMock(\Magento\Theme\Model\CopyService::class, ['copy']);
  17. $copyService->expects($this->once())->method('copy')->will($this->returnValue($copyService));
  18. $virtualTheme = $this->createPartialMock(
  19. \Magento\Theme\Model\Theme::class,
  20. ['__wakeup', 'getThemeImage', 'createPreviewImageCopy', 'save']
  21. );
  22. $virtualTheme->expects($this->once())->method('getThemeImage')->will($this->returnValue($virtualTheme));
  23. $virtualTheme->expects(
  24. $this->once()
  25. )->method(
  26. 'createPreviewImageCopy'
  27. )->will(
  28. $this->returnValue($virtualTheme)
  29. );
  30. $virtualTheme->expects($this->once())->method('save')->will($this->returnValue($virtualTheme));
  31. $themeFactory = $this->createPartialMock(\Magento\Theme\Model\ThemeFactory::class, ['create']);
  32. $themeFactory->expects($this->once())->method('create')->will($this->returnValue($virtualTheme));
  33. $themeCollection = $this->createPartialMock(
  34. \Magento\Theme\Model\ResourceModel\Theme\Collection::class,
  35. ['addTypeFilter', 'addAreaFilter', 'addFilter', 'count']
  36. );
  37. $themeCollection->expects($this->any())->method('addTypeFilter')->will($this->returnValue($themeCollection));
  38. $themeCollection->expects($this->any())->method('addAreaFilter')->will($this->returnValue($themeCollection));
  39. $themeCollection->expects($this->any())->method('addFilter')->will($this->returnValue($themeCollection));
  40. $themeCollection->expects($this->once())->method('count')->will($this->returnValue(1));
  41. $domainModel = new \Magento\Theme\Model\Theme\Domain\Physical(
  42. $this->createMock(\Magento\Framework\View\Design\ThemeInterface::class),
  43. $themeFactory,
  44. $copyService,
  45. $themeCollection
  46. );
  47. $domainModel->createVirtualTheme($physicalTheme);
  48. }
  49. }