Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
GiftOptionsTest.php
Go to the documentation of this file.
1 <?php
7 
13 
14 class GiftOptionsTest extends \PHPUnit\Framework\TestCase
15 {
17  protected $model;
18 
20  protected $contextMock;
21 
24 
26  protected $jsonEncoderMock;
27 
29  protected $jsLayout = ['root' => 'node'];
30 
31  protected function setUp()
32  {
33  $this->contextMock = $this->getMockBuilder(\Magento\Backend\Block\Template\Context::class)
34  ->disableOriginalConstructor()
35  ->getMock();
36 
37  $this->jsonEncoderMock = $this->getMockBuilder(\Magento\Framework\Json\Encoder::class)
38  ->disableOriginalConstructor()
39  ->getMock();
40 
41  $this->compositeConfigProvider = $this->getMockBuilder(\Magento\Checkout\Model\CompositeConfigProvider::class)
42  ->disableOriginalConstructor()
43  ->getMock();
44 
45  $this->layoutProcessorMock = $this->getMockBuilder(
46  \Magento\Checkout\Block\Checkout\LayoutProcessorInterface::class
47  )
48  ->disableOriginalConstructor()
49  ->getMockForAbstractClass();
50 
51  $this->model = new GiftOptions(
52  $this->contextMock,
53  $this->jsonEncoderMock,
54  [$this->layoutProcessorMock],
55  ['jsLayout' => $this->jsLayout]
56  );
57  }
58 
59  public function testGetJsLayout()
60  {
64  $itemMock = $this->getMockBuilder(\Magento\Quote\Model\Quote\Item::class)
65  ->disableOriginalConstructor()
66  ->getMock();
67 
68  $this->layoutProcessorMock->expects($this->once())
69  ->method('process')
70  ->with($this->jsLayout, $itemMock)
71  ->willReturnArgument(0);
72 
73  $this->jsonEncoderMock->expects($this->once())
74  ->method('encode')
75  ->with($this->jsLayout)
76  ->willReturnArgument(0);
77 
78  $this->model->setItem($itemMock);
79  $this->assertEquals($this->jsLayout, $this->model->getJsLayout());
80  }
81 }