Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
ReaderPoolTest.php
Go to the documentation of this file.
1 <?php
8 
10 
11 class ReaderPoolTest extends \PHPUnit\Framework\TestCase
12 {
15 
17  protected $pool;
18 
20  protected $readerFactoryMock;
21 
22  protected function setUp()
23  {
24  $this->objectManagerHelper = new ObjectManagerHelper($this);
25  $this->readerFactoryMock = $this->getMockBuilder(\Magento\Framework\View\Layout\ReaderFactory::class)
26  ->disableOriginalConstructor()->getMock();
27 
28  $this->pool = $this->objectManagerHelper->getObject(
29  \Magento\Framework\View\Layout\ReaderPool::class,
30  [
31  'readerFactory' => $this->readerFactoryMock,
32  'readers' => ['move' => \Magento\Framework\View\Layout\Reader\Move::class]
33  ]
34  );
35  }
36 
37  public function testInterpret()
38  {
40  $contextMock = $this->getMockBuilder(\Magento\Framework\View\Layout\Reader\Context::class)
41  ->disableOriginalConstructor()->getMock();
42 
43  $currentElement = new \Magento\Framework\View\Layout\Element(
44  '<element><move name="block"/><remove name="container"/><ignored name="user"/></element>'
45  );
46 
50  $moveReaderMock = $this->getMockBuilder(\Magento\Framework\View\Layout\Reader\Move::class)
51  ->disableOriginalConstructor()->getMock();
52  $moveReaderMock->expects($this->exactly(2))->method('interpret')
53  ->willReturn($this->returnSelf());
54  $moveReaderMock->method('getSupportedNodes')
55  ->willReturn(['move']);
56 
57  $this->readerFactoryMock->expects($this->once())
58  ->method('create')
59  ->willReturnMap([[\Magento\Framework\View\Layout\Reader\Move::class, [], $moveReaderMock]]);
60 
61  $this->pool->interpret($contextMock, $currentElement);
62  $this->pool->interpret($contextMock, $currentElement);
63  }
64 }