PagingTest.php 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\Ui\Test\Unit\Component;
  7. use Magento\Ui\Component\Paging;
  8. use Magento\Framework\TestFramework\Unit\Helper\ObjectManager;
  9. use Magento\Framework\View\Element\UiComponent\ContextInterface;
  10. use Magento\Framework\View\Element\UiComponent\DataProvider\DataProviderInterface;
  11. /**
  12. * Class PagingTest
  13. */
  14. class PagingTest extends \PHPUnit\Framework\TestCase
  15. {
  16. /**
  17. * @var ContextInterface|\PHPUnit_Framework_MockObject_MockObject
  18. */
  19. protected $contextMock;
  20. /**
  21. * @var ObjectManager
  22. */
  23. protected $objectManager;
  24. /**
  25. * Set up
  26. */
  27. protected function setUp()
  28. {
  29. $this->objectManager = new ObjectManager($this);
  30. $this->contextMock = $this->getMockForAbstractClass(
  31. \Magento\Framework\View\Element\UiComponent\ContextInterface::class,
  32. [],
  33. '',
  34. false,
  35. true,
  36. true,
  37. []
  38. );
  39. }
  40. /**
  41. * Run test getComponentName method
  42. *
  43. * @return void
  44. */
  45. public function testGetComponentName()
  46. {
  47. $this->contextMock->expects($this->never())->method('getProcessor');
  48. /** @var Paging $listing */
  49. $paging = $this->objectManager->getObject(
  50. \Magento\Ui\Component\Paging::class,
  51. [
  52. 'context' => $this->contextMock,
  53. 'data' => []
  54. ]
  55. );
  56. $this->assertTrue($paging->getComponentName() === Paging::NAME);
  57. }
  58. /**
  59. * Run test prepare method
  60. *
  61. * @return void
  62. */
  63. public function testPrepare()
  64. {
  65. $processor = $this->getMockBuilder(\Magento\Framework\View\Element\UiComponent\Processor::class)
  66. ->disableOriginalConstructor()
  67. ->getMock();
  68. $this->contextMock->expects($this->atLeastOnce())->method('getProcessor')->willReturn($processor);
  69. $resultData = [
  70. 'js_config' => [
  71. 'extends' => 'test_config_extends',
  72. 'testData' => 'testValue'
  73. ],
  74. 'config' => [
  75. 'options' => [
  76. [
  77. 'value' => 20,
  78. 'label' => 20
  79. ],
  80. [
  81. 'value' => 30,
  82. 'label' => 30
  83. ],
  84. [
  85. 'value' => 50,
  86. 'label' => 50
  87. ],
  88. [
  89. 'value' => 100,
  90. 'label' => 100
  91. ],
  92. [
  93. 'value' => 200,
  94. 'label' => 200
  95. ],
  96. [
  97. 'value' => 20,
  98. 'label' => 'options1'
  99. ],
  100. [
  101. 'value' => 40,
  102. 'label' => 'options2'
  103. ],
  104. ],
  105. 'pageSize' => 20,
  106. 'current' => 2
  107. ]
  108. ];
  109. /** @var Paging $paging */
  110. $paging = $this->objectManager->getObject(
  111. \Magento\Ui\Component\Paging::class,
  112. [
  113. 'context' => $this->contextMock,
  114. 'data' => [
  115. 'js_config' => [
  116. 'extends' => 'test_config_extends',
  117. 'testData' => 'testValue',
  118. ],
  119. 'config' => [
  120. 'options' => [
  121. 'options1' => [
  122. 'label' => 'options1',
  123. 'value' => '20'
  124. ],
  125. 'options2' => [
  126. 'label' => 'options2',
  127. 'value' => '40'
  128. ]
  129. ],
  130. 'current' => 2,
  131. 'pageSize' => 20
  132. ]
  133. ]
  134. ]
  135. );
  136. /** @var DataProviderInterface|\PHPUnit_Framework_MockObject_MockObject $dataProviderMock */
  137. $dataProviderMock = $this->getMockBuilder(DataProviderInterface::class)->getMockForAbstractClass();
  138. $this->contextMock->expects($this->once())
  139. ->method('getRequestParam')
  140. ->with('paging')
  141. ->willReturn(['pageSize' => 5, 'current' => 3]);
  142. $this->contextMock->expects($this->once())
  143. ->method('getDataProvider')
  144. ->willReturn($dataProviderMock);
  145. $dataProviderMock->expects($this->once())
  146. ->method('setLimit')
  147. ->with(3, 5);
  148. $this->contextMock->expects($this->once())
  149. ->method('addComponentDefinition')
  150. ->with($paging->getComponentName(), ['extends' => 'test_config_extends', 'testData' => 'testValue']);
  151. $paging->prepare();
  152. $this->assertEquals($paging->getData(), $resultData);
  153. }
  154. }