![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/old/vendor/magento/framework/View/Test/Unit/Layout/ |
<?php /** * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ declare(strict_types=1); namespace Magento\Framework\View\Test\Unit\Layout; use Magento\Framework\App\Request\Http; use Magento\Framework\Event\ManagerInterface; use Magento\Framework\TestFramework\Unit\Helper\ObjectManager; use Magento\Framework\View\Layout; use Magento\Framework\View\Layout\Builder; use Magento\Framework\View\Layout\ProcessorInterface; use PHPUnit\Framework\MockObject\MockObject; use PHPUnit\Framework\TestCase; /** * @covers \Magento\Framework\View\Layout\Builder */ class BuilderTest extends TestCase { const CLASS_NAME = Builder::class; /** * @return void * * @covers \Magento\Framework\View\Layout\Builder::build() */ public function testBuild(): void { $fullActionName = 'route_controller_action'; /** @var Http|MockObject */ $request = $this->createMock(Http::class); $request->expects($this->exactly(3))->method('getFullActionName')->willReturn($fullActionName); /** @var ProcessorInterface|MockObject $processor */ $processor = $this->getMockForAbstractClass(ProcessorInterface::class); $processor->expects($this->once())->method('load'); /** @var Layout|MockObject */ $layout = $this->createPartialMock( Layout::class, $this->getLayoutMockMethods() ); $layout->expects($this->atLeastOnce())->method('getUpdate')->willReturn($processor); $layout->expects($this->atLeastOnce())->method('generateXml')->willReturn($processor); $layout->expects($this->atLeastOnce())->method('generateElements')->willReturn($processor); $data = ['full_action_name' => $fullActionName, 'layout' => $layout]; /** @var ManagerInterface|MockObject $eventManager */ $eventManager = $this->getMockForAbstractClass(ManagerInterface::class); $eventManager ->method('dispatch') ->withConsecutive( ['layout_load_before', $data], ['layout_generate_blocks_before', $data], ['layout_generate_blocks_after', $data] ); $builder = $this->getBuilder(['eventManager' => $eventManager, 'request' => $request, 'layout' => $layout]); $builder->build(); } /** * @return array */ protected function getLayoutMockMethods(): array { return ['setBuilder', 'getUpdate', 'generateXml', 'generateElements']; } /** * @param array $arguments * @return object */ protected function getBuilder($arguments) { return (new ObjectManager($this))->getObject(static::CLASS_NAME, $arguments); } }