UiComponentGeneratorTest.php 2.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\Ui\Test\Unit\Model;
  7. use Magento\Framework\TestFramework\Unit\Helper\ObjectManager as ObjectManagerHelper;
  8. use Magento\Framework\View\Element\UiComponent\LayoutInterface;
  9. use Magento\Framework\View\Element\UiComponentInterface;
  10. class UiComponentGeneratorTest extends \PHPUnit\Framework\TestCase
  11. {
  12. /** @var \Magento\Ui\Model\UiComponentGenerator */
  13. protected $model;
  14. /** @var ObjectManagerHelper */
  15. protected $objectManagerHelper;
  16. /** @var \Magento\Framework\View\Element\UiComponent\ContextFactory|\PHPUnit_Framework_MockObject_MockObject */
  17. protected $contextFactoryMock;
  18. /** @var \Magento\Framework\View\Element\UiComponentFactory|\PHPUnit_Framework_MockObject_MockObject */
  19. protected $uiComponentFactoryMock;
  20. protected function setUp()
  21. {
  22. $this->contextFactoryMock = $this
  23. ->getMockBuilder(\Magento\Framework\View\Element\UiComponent\ContextFactory::class)
  24. ->setMethods(['create'])
  25. ->disableOriginalConstructor()
  26. ->getMock();
  27. $this->uiComponentFactoryMock = $this->getMockBuilder(\Magento\Framework\View\Element\UiComponentFactory::class)
  28. ->setMethods(['create'])
  29. ->disableOriginalConstructor()
  30. ->getMock();
  31. $this->objectManagerHelper = new ObjectManagerHelper($this);
  32. $this->model = $this->objectManagerHelper->getObject(
  33. \Magento\Ui\Model\UiComponentGenerator::class,
  34. [
  35. 'contextFactory' => $this->contextFactoryMock,
  36. 'uiComponentFactory' => $this->uiComponentFactoryMock
  37. ]
  38. );
  39. }
  40. public function testGenerateUiComponent()
  41. {
  42. $uiComponentMock = $this->createMock(UiComponentInterface::class);
  43. $uiComponentMockChild1 = $this->createMock(UiComponentInterface::class);
  44. $uiComponentMockChild2 = $this->createMock(UiComponentInterface::class);
  45. $uiComponentMockChild1->expects($this->once())
  46. ->method('prepare');
  47. $uiComponentMockChild2->expects($this->once())
  48. ->method('prepare');
  49. $uiComponentMock->expects($this->once())
  50. ->method('prepare');
  51. $uiComponentMock->expects($this->once())
  52. ->method('getChildComponents')
  53. ->willReturn([$uiComponentMockChild1, $uiComponentMockChild2]);
  54. $this->uiComponentFactoryMock->expects($this->once())
  55. ->method('create')
  56. ->willReturn($uiComponentMock);
  57. $layoutMock = $this->createMock(\Magento\Framework\View\LayoutInterface::class);
  58. $this->model->generateUiComponent('widget_recently_viewed', $layoutMock);
  59. }
  60. }