123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141 |
- <?php
- /**
- * Copyright © Magento, Inc. All rights reserved.
- * See COPYING.txt for license details.
- */
- namespace Magento\Theme\Test\Unit\Model\Design;
- class BackendModelFactoryTest extends \PHPUnit\Framework\TestCase
- {
- /** @var \Magento\Theme\Model\Design\BackendModelFactory */
- protected $model;
- /** @var \Magento\Framework\ObjectManagerInterface|\PHPUnit_Framework_MockObject_MockObject */
- protected $objectManagerMock;
- /** @var \Magento\Theme\Model\Design\Config\MetadataProvider|\PHPUnit_Framework_MockObject_MockObject */
- protected $metadataProviderMock;
- /**
- * @var \Magento\Theme\Model\ResourceModel\Design\Config\CollectionFactory|\PHPUnit_Framework_MockObject_MockObject
- */
- protected $collectionFactoryMock;
- /** @var \Magento\Theme\Model\ResourceModel\Design\Config\Collection|\PHPUnit_Framework_MockObject_MockObject */
- protected $collection;
- /** @var \Magento\Framework\App\Config\Value|\PHPUnit_Framework_MockObject_MockObject */
- protected $backendModel;
- protected function setUp()
- {
- $this->objectManagerMock = $this->getMockBuilder(\Magento\Framework\ObjectManagerInterface::class)
- ->getMockForAbstractClass();
- $this->metadataProviderMock = $this->getMockBuilder(\Magento\Theme\Model\Design\Config\MetadataProvider::class)
- ->disableOriginalConstructor()
- ->getMock();
- $this->collectionFactoryMock = $this->getMockBuilder(
- \Magento\Theme\Model\ResourceModel\Design\Config\CollectionFactory::class
- )
- ->disableOriginalConstructor()
- ->setMethods(['create'])
- ->getMock();
- $this->collection = $this->getMockBuilder(\Magento\Theme\Model\ResourceModel\Design\Config\Collection::class)
- ->disableOriginalConstructor()
- ->getMock();
- $this->backendModel = $this->getMockBuilder(\Magento\Framework\App\Config\Value::class)
- ->disableOriginalConstructor()
- ->setMethods(['setValue'])
- ->getMock();
-
- $this->model = new \Magento\Theme\Model\Design\BackendModelFactory(
- $this->objectManagerMock,
- $this->metadataProviderMock,
- $this->collectionFactoryMock
- );
- }
- public function testCreate()
- {
- $scope = 'website';
- $scopeId = 1;
- $data = [
- 'scope' => $scope,
- 'scopeId' => $scopeId,
- 'value' => 'value',
- 'config' => [
- 'path' => 'design/head/default_title',
- 'backend_model' => \Magento\Framework\App\Config\Value::class
- ]
- ];
- $this->metadataProviderMock->expects($this->once())
- ->method('get')
- ->willReturn([
- 'head_default_title' => [
- 'path' => 'design/head/default_title'
- ]
- ]);
- $this->collectionFactoryMock->expects($this->once())
- ->method('create')
- ->willReturn($this->collection);
- $this->collection->expects($this->once())
- ->method('addPathsFilter')
- ->with(['head_default_title' => 'design/head/default_title']);
- $this->collection->expects($this->once())
- ->method('addFieldToFilter')
- ->with('scope', $scope);
- $this->collection->expects($this->once())
- ->method('addScopeIdFilter')
- ->with($scopeId);
- $this->collection->expects($this->once())
- ->method('getData')
- ->willReturn([
- [
- 'config_id' => 1,
- 'path' => 'design/head/default_title'
- ]
- ]);
- $this->objectManagerMock->expects($this->once())
- ->method('create')
- ->with(
- \Magento\Framework\App\Config\Value::class,
- [
- 'data' => [
- 'path' => 'design/head/default_title',
- 'scope' => $scope,
- 'scope_id' => $scopeId,
- 'field_config' => $data['config'],
- 'config_id' => 1
- ]
- ]
- )
- ->willReturn($this->backendModel);
- $this->backendModel->expects($this->once())
- ->method('setValue')
- ->willReturn('value');
- $this->assertSame($this->backendModel, $this->model->create($data));
- }
- public function testCreateByPath()
- {
- $path = 'design/head/default_title';
- $backendModelType = \Magento\Theme\Model\Design\Backend\Exceptions::class;
- $backendModel = $this->getMockBuilder($backendModelType)
- ->disableOriginalConstructor()
- ->getMock();
- $this->metadataProviderMock->expects($this->once())
- ->method('get')
- ->willReturn([
- 'head_default_title' => [
- 'path' => $path,
- 'backend_model' => $backendModelType
- ]
- ]);
- $this->objectManagerMock->expects($this->once())
- ->method('create')
- ->with($backendModelType, ['data' => []])
- ->willReturn($backendModel);
- $this->assertEquals($backendModel, $this->model->createByPath($path));
- }
- }
|