Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
DefaultItemsTest.php
Go to the documentation of this file.
1 <?php
8 
9 class DefaultItemsTest extends \PHPUnit\Framework\TestCase
10 {
14  protected $block;
15 
19  protected $priceRenderBlock;
20 
24  protected $layoutMock;
25 
29  protected $objectManager;
30 
32  protected $itemMock;
33 
37  protected function setUp()
38  {
39  $this->objectManager = new \Magento\Framework\TestFramework\Unit\Helper\ObjectManager($this);
40 
41  $this->layoutMock = $this->getMockBuilder(\Magento\Framework\View\Layout::class)
42  ->disableOriginalConstructor()
43  ->setMethods(['getBlock'])
44  ->getMock();
45 
46  $this->block = $this->objectManager->getObject(
47  \Magento\Sales\Block\Order\Email\Items\DefaultItems::class,
48  [
49  'context' => $this->objectManager->getObject(
50  \Magento\Backend\Block\Template\Context::class,
51  ['layout' => $this->layoutMock]
52  )
53  ]
54  );
55 
56  $this->priceRenderBlock = $this->getMockBuilder(\Magento\Backend\Block\Template::class)
57  ->disableOriginalConstructor()
58  ->setMethods(['setItem', 'toHtml'])
59  ->getMock();
60 
61  $this->itemMock = $this->getMockBuilder(\Magento\Sales\Model\Order\Item::class)
62  ->disableOriginalConstructor()
63  ->setMethods(['__wakeup'])
64  ->getMock();
65  }
66 
67  public function testGetItemPrice()
68  {
69  $html = '$34.28';
70 
71  $this->layoutMock->expects($this->once())
72  ->method('getBlock')
73  ->with('item_price')
74  ->will($this->returnValue($this->priceRenderBlock));
75 
76  $this->priceRenderBlock->expects($this->once())
77  ->method('setItem')
78  ->with($this->itemMock);
79 
80  $this->priceRenderBlock->expects($this->once())
81  ->method('toHtml')
82  ->will($this->returnValue($html));
83 
84  $this->assertEquals($html, $this->block->getItemPrice($this->itemMock));
85  }
86 }