ExportButtonTest.php 3.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  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\Framework\TestFramework\Unit\Helper\ObjectManager;
  8. /**
  9. * Class ExportButtonTest
  10. */
  11. class ExportButtonTest extends \PHPUnit\Framework\TestCase
  12. {
  13. /**
  14. * @var \Magento\Framework\View\Element\UiComponent\ContextInterface|\PHPUnit_Framework_MockObject_MockObject
  15. */
  16. private $context;
  17. /**
  18. * @var \PHPUnit_Framework_MockObject_MockObject
  19. */
  20. protected $urlBuilderMock;
  21. /**
  22. * @var ObjectManager
  23. */
  24. protected $objectManager;
  25. /**
  26. * @var \Magento\Ui\Component\ExportButton
  27. */
  28. protected $model;
  29. protected function setUp()
  30. {
  31. $this->context = $this->getMockBuilder(\Magento\Framework\View\Element\UiComponent\ContextInterface::class)
  32. ->getMockForAbstractClass();
  33. $this->objectManager = new ObjectManager($this);
  34. $this->urlBuilderMock = $this->getMockBuilder(\Magento\Framework\UrlInterface::class)
  35. ->disableOriginalConstructor()
  36. ->getMock();
  37. $this->model = $this->objectManager->getObject(
  38. \Magento\Ui\Component\ExportButton::class,
  39. [
  40. 'urlBuilder' => $this->urlBuilderMock,
  41. 'context' => $this->context,
  42. ]
  43. );
  44. }
  45. public function testGetComponentName()
  46. {
  47. $this->context->expects($this->never())->method('getProcessor');
  48. $this->assertEquals(\Magento\Ui\Component\ExportButton::NAME, $this->model->getComponentName());
  49. }
  50. public function testPrepare()
  51. {
  52. $processor = $this->getMockBuilder(\Magento\Framework\View\Element\UiComponent\Processor::class)
  53. ->disableOriginalConstructor()
  54. ->getMock();
  55. $this->context->expects($this->atLeastOnce())->method('getProcessor')->willReturn($processor);
  56. $this->context->expects($this->any())
  57. ->method('getRequestParam')
  58. ->with('test_asterisk')
  59. ->willReturn('test_asterisk_value');
  60. $option = ['label' => 'test label', 'value' => 'test value', 'url' => 'test_url'];
  61. $data = [
  62. 'config' => [
  63. 'options' => [
  64. $option
  65. ],
  66. 'additionalParams' => [
  67. 'test_key' => 'test_value',
  68. 'test_asterisk' => '*'
  69. ]
  70. ],
  71. ];
  72. $expected = $data;
  73. $expected['config']['options'][0]['url'] = [
  74. 'test_key' => 'test_value',
  75. 'test_asterisk' => 'test_asterisk_value',
  76. ];
  77. $this->model->setData($data);
  78. $this->urlBuilderMock->expects($this->once())
  79. ->method('getUrl')
  80. ->with('test_url')
  81. ->willReturnArgument(1);
  82. self::assertNull($this->model->prepare());
  83. self::assertEquals(
  84. $expected,
  85. $this->model->getData()
  86. );
  87. }
  88. }