123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195 |
- <?php
- /**
- * Copyright © Magento, Inc. All rights reserved.
- * See COPYING.txt for license details.
- */
- /**
- * Test theme config model
- */
- namespace Magento\Theme\Test\Unit\Model;
- class ConfigTest extends \PHPUnit\Framework\TestCase
- {
- /**
- * @var \PHPUnit_Framework_MockObject_MockObject
- */
- protected $_themeMock;
- /**
- * @var \PHPUnit_Framework_MockObject_MockObject
- */
- protected $_configData;
- /**
- * @var \PHPUnit_Framework_MockObject_MockObject
- */
- protected $_storeManagerMock;
- /**
- * @var \PHPUnit_Framework_MockObject_MockObject
- */
- protected $_configCacheMock;
- /**
- * @var \PHPUnit_Framework_MockObject_MockObject
- */
- protected $_layoutCacheMock;
- /**
- * @var \Magento\Framework\App\Config\Storage\WriterInterface
- */
- protected $_scopeConfigWriter;
- /**
- * @var \Magento\Theme\Model\Config
- */
- protected $_model;
- protected function setUp()
- {
- /** @var $this->_themeMock \Magento\Theme\Model\Theme */
- $this->_themeMock = $this->createMock(\Magento\Theme\Model\Theme::class);
- $this->_storeManagerMock = $this->getMockForAbstractClass(
- \Magento\Store\Model\StoreManagerInterface::class,
- [],
- '',
- true,
- true,
- true,
- ['getStores', 'isSingleStoreMode']
- );
- $this->_configData = $this->createPartialMock(
- \Magento\Framework\App\Config\Value::class,
- ['getCollection', 'addFieldToFilter', '__wakeup']
- );
- $this->_configCacheMock = $this->getMockForAbstractClass(\Magento\Framework\Cache\FrontendInterface::class);
- $this->_layoutCacheMock = $this->getMockForAbstractClass(\Magento\Framework\Cache\FrontendInterface::class);
- $this->_scopeConfigWriter = $this->createPartialMock(
- \Magento\Framework\App\Config\Storage\WriterInterface::class,
- ['save', 'delete']
- );
- $this->_model = new \Magento\Theme\Model\Config(
- $this->_configData,
- $this->_scopeConfigWriter,
- $this->_storeManagerMock,
- $this->createMock(\Magento\Framework\Event\ManagerInterface::class),
- $this->_configCacheMock,
- $this->_layoutCacheMock
- );
- }
- protected function tearDown()
- {
- $this->_themeMock = null;
- $this->_configData = null;
- $this->_themeFactoryMock = null;
- $this->_configCacheMock = null;
- $this->_layoutCacheMock = null;
- $this->_model = null;
- }
- /**
- * cover \Magento\Theme\Model\Config::assignToStore
- */
- public function testAssignToStoreInSingleStoreMode()
- {
- $this->_storeManagerMock->expects($this->once())->method('isSingleStoreMode')->will($this->returnValue(true));
- $themePath = 'Magento/blank';
- /** Unassign themes from store */
- $configEntity = new \Magento\Framework\DataObject(['value' => 6, 'scope_id' => 8]);
- $this->_configData->expects(
- $this->once()
- )->method(
- 'getCollection'
- )->will(
- $this->returnValue($this->_configData)
- );
- $this->_configData->expects(
- $this->at(1)
- )->method(
- 'addFieldToFilter'
- )->with(
- 'scope',
- \Magento\Store\Model\ScopeInterface::SCOPE_STORES
- )->will(
- $this->returnValue($this->_configData)
- );
- $this->_configData->expects(
- $this->at(2)
- )->method(
- 'addFieldToFilter'
- )->with(
- 'path',
- \Magento\Framework\View\DesignInterface::XML_PATH_THEME_ID
- )->will(
- $this->returnValue([$configEntity])
- );
- $this->_themeMock->expects($this->any())->method('getId')->will($this->returnValue(6));
- $this->_themeMock->expects($this->any())->method('getThemePath')->will($this->returnValue($themePath));
- $this->_scopeConfigWriter->expects($this->once())->method('delete');
- $this->_scopeConfigWriter->expects($this->once())->method('save');
- $this->_model->assignToStore($this->_themeMock, [2, 3, 5]);
- }
- /**
- * cover \Magento\Theme\Model\Config::assignToStore
- */
- public function testAssignToStoreNonSingleStoreMode()
- {
- $this->_storeManagerMock->expects($this->once())->method('isSingleStoreMode')->will($this->returnValue(false));
- $themePath = 'Magento/blank';
- /** Unassign themes from store */
- $configEntity = new \Magento\Framework\DataObject(['value' => 6, 'scope_id' => 8]);
- $this->_configData->expects(
- $this->once()
- )->method(
- 'getCollection'
- )->will(
- $this->returnValue($this->_configData)
- );
- $this->_configData->expects(
- $this->at(1)
- )->method(
- 'addFieldToFilter'
- )->with(
- 'scope',
- \Magento\Store\Model\ScopeInterface::SCOPE_STORES
- )->will(
- $this->returnValue($this->_configData)
- );
- $this->_configData->expects(
- $this->at(2)
- )->method(
- 'addFieldToFilter'
- )->with(
- 'path',
- \Magento\Framework\View\DesignInterface::XML_PATH_THEME_ID
- )->will(
- $this->returnValue([$configEntity])
- );
- $this->_themeMock->expects($this->any())->method('getId')->will($this->returnValue(6));
- $this->_themeMock->expects($this->any())->method('getThemePath')->will($this->returnValue($themePath));
- $this->_scopeConfigWriter->expects($this->once())->method('delete');
- $this->_scopeConfigWriter->expects($this->exactly(3))->method('save');
- $this->_model->assignToStore($this->_themeMock, [2, 3, 5]);
- }
- }
|