StructureManagerTest.php 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\Backend\Test\Unit\Model\View\Layout;
  7. use Magento\Backend\Model\View\Layout\StructureManager;
  8. use Magento\Framework\View\Layout\ScheduledStructure;
  9. use Magento\Framework\View\Layout\Data\Structure;
  10. use Magento\Framework\TestFramework\Unit\Helper\ObjectManager;
  11. /**
  12. * Class StructureManagerTest
  13. */
  14. class StructureManagerTest extends \PHPUnit\Framework\TestCase
  15. {
  16. /**
  17. * @var Structure|\PHPUnit_Framework_MockObject_MockObject
  18. */
  19. private $structureMock;
  20. /**
  21. * @var ScheduledStructure|\PHPUnit_Framework_MockObject_MockObject
  22. */
  23. private $scheduledStructureMock;
  24. /**
  25. * @var StructureManager
  26. */
  27. private $structureManager;
  28. public function setUp()
  29. {
  30. $objectManager = new ObjectManager($this);
  31. $this->structureMock = $this->getMockBuilder(Structure::class)
  32. ->disableOriginalConstructor()
  33. ->getMock();
  34. $this->scheduledStructureMock = $this->getMockBuilder(ScheduledStructure::class)
  35. ->disableOriginalConstructor()
  36. ->getMock();
  37. $this->structureManager = $objectManager->getObject(StructureManager::class);
  38. }
  39. public function testRemoveElement()
  40. {
  41. $this->structureMock->expects($this->exactly(3))
  42. ->method('getChildren')
  43. ->willReturnMap(
  44. [
  45. [
  46. 'element-0', [
  47. 'element-1' => [],
  48. 'element-2' => []
  49. ]
  50. ],
  51. [
  52. 'element-1', []
  53. ],
  54. [
  55. 'element-2', []
  56. ]
  57. ]
  58. );
  59. $this->scheduledStructureMock->expects($this->exactly(3))
  60. ->method('unsetElement')
  61. ->willReturnMap(
  62. [
  63. ['element-0', true],
  64. ['element-1', true],
  65. ['element-2', true]
  66. ]
  67. );
  68. $this->structureMock->expects($this->once())
  69. ->method('unsetElement')
  70. ->with('element-0');
  71. $this->assertTrue(
  72. $this->structureManager->removeElement(
  73. $this->scheduledStructureMock,
  74. $this->structureMock,
  75. 'element-0',
  76. false
  77. )
  78. );
  79. }
  80. }