| Current Path : /home/rtorresani/www/setup/src/Magento/Setup/Test/Unit/Module/Di/App/Task/ |
| Current File : //home/rtorresani/www/setup/src/Magento/Setup/Test/Unit/Module/Di/App/Task/AreaTest.php |
<?php
/**
* Copyright © Magento, Inc. All rights reserved.
* See COPYING.txt for license details.
*/
declare(strict_types=1);
namespace Magento\Setup\Test\Unit\Module\Di\App\Task;
use Magento\Framework\App;
use Magento\Framework\App\AreaList;
use Magento\Framework\App\ObjectManager\ConfigWriterInterface;
use Magento\Setup\Module\Di\App\Task\Operation\Area;
use Magento\Setup\Module\Di\Compiler\Config;
use Magento\Setup\Module\Di\Compiler\Config\ModificationChain;
use Magento\Setup\Module\Di\Compiler\Config\Reader;
use Magento\Setup\Module\Di\Definition\Collection;
use PHPUnit\Framework\MockObject\MockObject;
use PHPUnit\Framework\TestCase;
class AreaTest extends TestCase
{
/**
* @var App\AreaList|MockObject
*/
private $areaListMock;
/**
* @var \Magento\Setup\Module\Di\Code\Reader\Decorator\Area|MockObject
*/
private $areaInstancesNamesList;
/**
* @var Config\Reader|MockObject
*/
private $configReaderMock;
/**
* @var Config\WriterInterface|MockObject
*/
private $configWriterMock;
/**
* @var ModificationChain|MockObject
*/
private $configChain;
protected function setUp(): void
{
$this->areaListMock = $this->getMockBuilder(AreaList::class)
->disableOriginalConstructor()
->getMock();
$this->areaInstancesNamesList =
$this->getMockBuilder(\Magento\Setup\Module\Di\Code\Reader\Decorator\Area::class)
->disableOriginalConstructor()
->getMock();
$this->configReaderMock = $this->getMockBuilder(Reader::class)
->disableOriginalConstructor()
->getMock();
$this->configWriterMock =
$this->getMockBuilder(ConfigWriterInterface::class)
->disableOriginalConstructor()
->getMockForAbstractClass();
$this->configChain = $this->getMockBuilder(ModificationChain::class)
->disableOriginalConstructor()
->getMock();
}
public function testDoOperationEmptyPath()
{
$areaOperation = new Area(
$this->areaListMock,
$this->areaInstancesNamesList,
$this->configReaderMock,
$this->configWriterMock,
$this->configChain
);
$this->assertNull($areaOperation->doOperation());
}
public function testDoOperationGlobalArea()
{
$path = 'path/to/codebase/';
$arguments = ['class' => []];
$generatedConfig = [
'arguments' => $arguments,
'preferences' => [],
'instanceTypes' => []
];
$areaOperation = new Area(
$this->areaListMock,
$this->areaInstancesNamesList,
$this->configReaderMock,
$this->configWriterMock,
$this->configChain,
[$path]
);
$this->areaListMock->expects($this->once())
->method('getCodes')
->willReturn([]);
$this->areaInstancesNamesList->expects($this->once())
->method('getList')
->with($path)
->willReturn($arguments);
$this->configReaderMock->expects($this->once())
->method('generateCachePerScope')
->with(
$this->isInstanceOf(Collection::class),
App\Area::AREA_GLOBAL
)
->willReturn($generatedConfig);
$this->configChain->expects($this->once())
->method('modify')
->with($generatedConfig)
->willReturn($generatedConfig);
$this->configWriterMock->expects($this->once())
->method('write')
->with(
App\Area::AREA_GLOBAL,
$generatedConfig
);
$areaOperation->doOperation();
}
}