MenuTest.php 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\Backend\Test\Unit\Block;
  7. use Magento\Backend\Model\Menu\Item;
  8. use Magento\Backend\Model\Menu as MenuModel;
  9. use Magento\Backend\Block\Menu;
  10. use Magento\Backend\Model\UrlInterface;
  11. use Magento\Backend\Model\Menu\Filter\IteratorFactory;
  12. use Magento\Backend\Model\Auth\Session;
  13. use Magento\Backend\Model\Menu\Config;
  14. use Magento\Framework\Locale\ResolverInterface;
  15. use Magento\Backend\Block\MenuItemChecker;
  16. use Magento\Backend\Block\AnchorRenderer;
  17. use Magento\Framework\TestFramework\Unit\Helper\ObjectManager as ObjectManagerHelper;
  18. class MenuTest extends \PHPUnit\Framework\TestCase
  19. {
  20. /**
  21. * @var Item|\PHPUnit_Framework_MockObject_MockObject
  22. */
  23. private $activeItemMock;
  24. /**
  25. * @var MenuModel|\PHPUnit_Framework_MockObject_MockObject
  26. */
  27. private $menuModelMock;
  28. /**
  29. * @var UrlInterface|\PHPUnit_Framework_MockObject_MockObject
  30. */
  31. private $urlMock;
  32. /**
  33. * @var IteratorFactory|\PHPUnit_Framework_MockObject_MockObject
  34. */
  35. private $iteratorFactoryMock;
  36. /**
  37. * @var Session|\PHPUnit_Framework_MockObject_MockObject
  38. */
  39. private $authSessionMock;
  40. /**
  41. * @var Config|\PHPUnit_Framework_MockObject_MockObject
  42. */
  43. private $menuConfigMock;
  44. /**
  45. * @var ResolverInterface|\PHPUnit_Framework_MockObject_MockObject
  46. */
  47. private $localeResolverMock;
  48. /**
  49. * @var ObjectManagerHelper
  50. */
  51. private $objectManagerHelper;
  52. /**
  53. * @var MenuItemChecker|\PHPUnit_Framework_MockObject_MockObject
  54. */
  55. private $menuItemCheckerMock;
  56. /**
  57. * @var AnchorRenderer|\PHPUnit_Framework_MockObject_MockObject
  58. */
  59. private $anchorRendererMock;
  60. /**
  61. * @var Menu
  62. */
  63. private $menu;
  64. protected function setUp()
  65. {
  66. $this->activeItemMock = $this->getMockBuilder(Item::class)
  67. ->disableOriginalConstructor()
  68. ->getMock();
  69. $this->urlMock = $this->getMockBuilder(UrlInterface::class)
  70. ->disableOriginalConstructor()
  71. ->getMock();
  72. $this->iteratorFactoryMock = $this->getMockBuilder(IteratorFactory::class)
  73. ->disableOriginalConstructor()
  74. ->getMock();
  75. $this->authSessionMock = $this->getMockBuilder(Session::class)
  76. ->disableOriginalConstructor()
  77. ->getMock();
  78. $this->menuConfigMock = $this->getMockBuilder(Config::class)
  79. ->disableOriginalConstructor()
  80. ->getMock();
  81. $this->localeResolverMock = $this->getMockBuilder(ResolverInterface::class)
  82. ->disableOriginalConstructor()
  83. ->getMock();
  84. $this->menuItemChecker = $this->getMockBuilder(MenuItemChecker::class)
  85. ->disableOriginalConstructor()
  86. ->getMock();
  87. $this->anchorRendererMock = $this->getMockBuilder(AnchorRenderer::class)
  88. ->disableOriginalConstructor()
  89. ->getMock();
  90. $this->objectManagerHelper = new ObjectManagerHelper($this);
  91. $this->menu = $this->objectManagerHelper->getObject(
  92. Menu::class,
  93. [
  94. 'url' => $this->urlMock,
  95. 'iteratorFactory' => $this->iteratorFactoryMock,
  96. 'authSession' => $this->authSessionMock,
  97. 'menuConfig' => $this->menuConfigMock,
  98. 'localeResolver' => $this->localeResolverMock,
  99. 'menuItemChecker' => $this->menuItemCheckerMock,
  100. 'anchorRenderer' => $this->anchorRendererMock
  101. ]
  102. );
  103. }
  104. public function testGetActiveItemModelMenuIsNotNull()
  105. {
  106. $this->menuModelMock = $this->getMockBuilder(MenuModel::class)
  107. ->disableOriginalConstructor()
  108. ->getMock();
  109. $this->menu->setActive($this->activeItemMock);
  110. $this->menuConfigMock->expects($this->once())->method('getMenu')->willReturn($this->menuModelMock);
  111. $this->menuModelMock->expects($this->once())
  112. ->method('get')
  113. ->willReturn($this->activeItemMock);
  114. $this->assertEquals($this->activeItemMock, $this->menu->getActiveItemModel());
  115. }
  116. public function testGetActiveItemModelMenuIsNull()
  117. {
  118. $this->menuModelMock = $this->getMockBuilder(MenuModel::class)
  119. ->disableOriginalConstructor()
  120. ->getMock();
  121. $this->menu->setActive(null);
  122. $this->menuConfigMock->expects($this->once())->method('getMenu')->willReturn($this->menuModelMock);
  123. $this->menuModelMock->expects($this->once())
  124. ->method('get')
  125. ->willReturn(null);
  126. $this->assertFalse($this->menu->getActiveItemModel());
  127. }
  128. }