Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
BodyTest.php
Go to the documentation of this file.
1 <?php
8 
9 use \Magento\Framework\View\Page\Config\Generator\Body;
10 
12 
16 class BodyTest extends \PHPUnit\Framework\TestCase
17 {
21  protected $bodyGenerator;
22 
26  protected $pageConfigMock;
27 
28  protected function setUp()
29  {
30  $this->pageConfigMock = $this->getMockBuilder(\Magento\Framework\View\Page\Config::class)
31  ->disableOriginalConstructor()
32  ->getMock();
33 
34  $objectManagerHelper = new ObjectManagerHelper($this);
35  $this->bodyGenerator = $objectManagerHelper->getObject(
36  \Magento\Framework\View\Page\Config\Generator\Body::class,
37  [
38  'pageConfig' => $this->pageConfigMock,
39  ]
40  );
41  }
42 
43  public function testProcess()
44  {
45  $generatorContextMock = $this->getMockBuilder(\Magento\Framework\View\Layout\Generator\Context::class)
46  ->disableOriginalConstructor()
47  ->getMock();
48 
49  $structureMock = $this->getMockBuilder(\Magento\Framework\View\Page\Config\Structure::class)
50  ->disableOriginalConstructor()
51  ->getMock();
52 
53  $readerContextMock = $this->getMockBuilder(\Magento\Framework\View\Layout\Reader\Context::class)
54  ->disableOriginalConstructor()
55  ->getMock();
56  $readerContextMock->expects($this->any())
57  ->method('getPageConfigStructure')
58  ->willReturn($structureMock);
59 
60  $bodyClasses = ['class_1', 'class--2'];
61  $structureMock->expects($this->once())
62  ->method('getBodyClasses')
63  ->will($this->returnValue($bodyClasses));
64  $this->pageConfigMock->expects($this->exactly(2))
65  ->method('addBodyClass')
66  ->withConsecutive(['class_1'], ['class--2']);
67 
68  $this->assertEquals(
69  $this->bodyGenerator,
70  $this->bodyGenerator->process($readerContextMock, $generatorContextMock)
71  );
72  }
73 }