AbstractTest.php 3.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\Sales\Test\Unit\Block\Items;
  7. use Magento\Sales\Block\Items\AbstractItems;
  8. class AbstractTest extends \PHPUnit\Framework\TestCase
  9. {
  10. /** @var \Magento\Framework\TestFramework\Unit\Helper\ObjectManager */
  11. protected $_objectManager;
  12. protected function setUp()
  13. {
  14. $this->_objectManager = new \Magento\Framework\TestFramework\Unit\Helper\ObjectManager($this);
  15. }
  16. public function testGetItemRenderer()
  17. {
  18. $rendererType = 'some-type';
  19. $renderer = $this->createPartialMock(
  20. \Magento\Framework\View\Element\AbstractBlock::class,
  21. ['setRenderedBlock']
  22. );
  23. $rendererList = $this->createMock(\Magento\Framework\View\Element\RendererList::class);
  24. $rendererList->expects(
  25. $this->once()
  26. )->method(
  27. 'getRenderer'
  28. )->with(
  29. $rendererType,
  30. AbstractItems::DEFAULT_TYPE
  31. )->will(
  32. $this->returnValue($renderer)
  33. );
  34. $layout = $this->createPartialMock(\Magento\Framework\View\Layout::class, ['getChildName', 'getBlock']);
  35. $layout->expects($this->once())->method('getChildName')->will($this->returnValue('renderer.list'));
  36. $layout->expects(
  37. $this->once()
  38. )->method(
  39. 'getBlock'
  40. )->with(
  41. 'renderer.list'
  42. )->will(
  43. $this->returnValue($rendererList)
  44. );
  45. /** @var $block \Magento\Sales\Block\Items\AbstractItems */
  46. $block = $this->_objectManager->getObject(
  47. \Magento\Sales\Block\Items\AbstractItems::class,
  48. [
  49. 'context' => $this->_objectManager->getObject(
  50. \Magento\Backend\Block\Template\Context::class,
  51. ['layout' => $layout]
  52. )
  53. ]
  54. );
  55. $renderer->expects($this->once())->method('setRenderedBlock')->with($block);
  56. $this->assertSame($renderer, $block->getItemRenderer($rendererType));
  57. }
  58. /**
  59. * @expectedException \RuntimeException
  60. * @expectedExceptionMessage Renderer list for block "" is not defined
  61. */
  62. public function testGetItemRendererThrowsExceptionForNonexistentRenderer()
  63. {
  64. $layout = $this->createPartialMock(\Magento\Framework\View\Layout::class, ['getChildName', 'getBlock']);
  65. $layout->expects($this->once())->method('getChildName')->will($this->returnValue(null));
  66. /** @var $block \Magento\Sales\Block\Items\AbstractItems */
  67. $block = $this->_objectManager->getObject(
  68. \Magento\Sales\Block\Items\AbstractItems::class,
  69. [
  70. 'context' => $this->_objectManager->getObject(
  71. \Magento\Backend\Block\Template\Context::class,
  72. ['layout' => $layout]
  73. )
  74. ]
  75. );
  76. $block->getItemRenderer('some-type');
  77. }
  78. }