ItemsTest.php 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\Sales\Block\Order;
  7. class ItemsTest extends \PHPUnit\Framework\TestCase
  8. {
  9. /**
  10. * @var \Magento\Sales\Block\Order\Items
  11. */
  12. private $model;
  13. /**
  14. * @var \Magento\Framework\View\LayoutInterface
  15. */
  16. private $layout;
  17. /**
  18. * @var \Magento\Framework\ObjectManagerInterface
  19. */
  20. private $objectManager;
  21. /**
  22. * @var \Magento\Framework\Registry
  23. */
  24. private $registry;
  25. protected function setUp()
  26. {
  27. $this->objectManager = \Magento\TestFramework\Helper\Bootstrap::getObjectManager();
  28. $this->layout = $this->objectManager->get(\Magento\Framework\View\LayoutInterface::class);
  29. $this->registry = $this->objectManager->get(\Magento\Framework\Registry::class);
  30. }
  31. /**
  32. * @magentoDataFixture Magento/Sales/_files/order.php
  33. */
  34. public function testGetOrderItems()
  35. {
  36. $this->registerOrder();
  37. $this->model = $this->layout->createBlock(\Magento\Sales\Block\Order\Items::class);
  38. $this->assertTrue(count($this->model->getItems()) > 0);
  39. }
  40. /**
  41. * @magentoAppIsolation enabled
  42. * @magentoConfigFixture default/sales/orders/items_per_page 3
  43. * @magentoDataFixture Magento/Sales/_files/order_item_list.php
  44. */
  45. public function testPagerIsDisplayed()
  46. {
  47. $this->registerOrder();
  48. /** @var \Magento\Sales\Block\Order\Items model */
  49. $this->model = $this->layout->createBlock(\Magento\Sales\Block\Order\Items::class, 'items_block');
  50. $this->layout->addBlock(
  51. $this->objectManager->get(\Magento\Theme\Block\Html\Pager::class),
  52. 'sales_order_item_pager',
  53. 'items_block'
  54. );
  55. $this->model->setLayout($this->layout);
  56. $this->assertTrue($this->model->isPagerDisplayed());
  57. }
  58. /**
  59. * @magentoDataFixture Magento/Sales/_files/order_item_list.php
  60. */
  61. public function testPagerIsNotDisplayed()
  62. {
  63. $this->registerOrder();
  64. /** @var \Magento\Sales\Block\Order\Items model */
  65. $this->model = $this->layout->createBlock(\Magento\Sales\Block\Order\Items::class, 'items_block');
  66. $this->layout->addBlock(
  67. $this->objectManager->get(\Magento\Theme\Block\Html\Pager::class),
  68. 'sales_order_item_pager',
  69. 'items_block'
  70. );
  71. $this->model->setLayout($this->layout);
  72. $this->assertFalse($this->model->isPagerDisplayed());
  73. }
  74. /**
  75. * @magentoAppIsolation enabled
  76. * @magentoAppArea frontend
  77. * @magentoConfigFixture default/sales/orders/items_per_page 3
  78. * @magentoDataFixture Magento/Sales/_files/order_item_list.php
  79. */
  80. public function testGetPagerHtml()
  81. {
  82. $this->registerOrder();
  83. /** @var \Magento\Sales\Block\Order\Items model */
  84. $this->model = $this->layout->createBlock(\Magento\Sales\Block\Order\Items::class, 'items_block');
  85. $this->layout->addBlock(
  86. $this->objectManager->get(\Magento\Theme\Block\Html\Pager::class),
  87. 'sales_order_item_pager',
  88. 'items_block'
  89. );
  90. $this->model->setLayout($this->layout);
  91. $this->assertNotEmpty($this->model->getPagerHtml());
  92. }
  93. /**
  94. * @magentoDataFixture Magento/Sales/_files/order.php
  95. */
  96. public function testGetOrder()
  97. {
  98. $order = $this->registerOrder();
  99. /** @var \Magento\Sales\Block\Order\Items model */
  100. $this->model = $this->layout->createBlock(\Magento\Sales\Block\Order\Items::class, 'items_block');
  101. $this->assertEquals($order, $this->model->getOrder());
  102. }
  103. /**
  104. * Register order in registry
  105. *
  106. * @return \Magento\Sales\Model\Order
  107. */
  108. private function registerOrder()
  109. {
  110. /** @var \Magento\Sales\Model\Order $order */
  111. $order = $this->objectManager->get(\Magento\Sales\Model\Order::class);
  112. $order->loadByIncrementId('100000001');
  113. $this->registry->register('current_order', $order);
  114. return $order;
  115. }
  116. }