Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
MenuTest.php
Go to the documentation of this file.
1 <?php
7 
12 use Magento\Backend\Model\Menu\Filter\IteratorFactory;
19 
20 class MenuTest extends \PHPUnit\Framework\TestCase
21 {
25  private $activeItemMock;
26 
30  private $menuModelMock;
31 
35  private $urlMock;
36 
40  private $iteratorFactoryMock;
41 
45  private $authSessionMock;
46 
50  private $menuConfigMock;
51 
55  private $localeResolverMock;
56 
60  private $objectManagerHelper;
61 
65  private $menuItemCheckerMock;
66 
70  private $anchorRendererMock;
71 
75  private $menu;
76 
77  protected function setUp()
78  {
79  $this->activeItemMock = $this->getMockBuilder(Item::class)
80  ->disableOriginalConstructor()
81  ->getMock();
82  $this->urlMock = $this->getMockBuilder(UrlInterface::class)
83  ->disableOriginalConstructor()
84  ->getMock();
85  $this->iteratorFactoryMock = $this->getMockBuilder(IteratorFactory::class)
86  ->disableOriginalConstructor()
87  ->getMock();
88  $this->authSessionMock = $this->getMockBuilder(Session::class)
89  ->disableOriginalConstructor()
90  ->getMock();
91  $this->menuConfigMock = $this->getMockBuilder(Config::class)
92  ->disableOriginalConstructor()
93  ->getMock();
94  $this->localeResolverMock = $this->getMockBuilder(ResolverInterface::class)
95  ->disableOriginalConstructor()
96  ->getMock();
97  $this->menuItemChecker = $this->getMockBuilder(MenuItemChecker::class)
98  ->disableOriginalConstructor()
99  ->getMock();
100  $this->anchorRendererMock = $this->getMockBuilder(AnchorRenderer::class)
101  ->disableOriginalConstructor()
102  ->getMock();
103 
104  $this->objectManagerHelper = new ObjectManagerHelper($this);
105  $this->menu = $this->objectManagerHelper->getObject(
106  Menu::class,
107  [
108  'url' => $this->urlMock,
109  'iteratorFactory' => $this->iteratorFactoryMock,
110  'authSession' => $this->authSessionMock,
111  'menuConfig' => $this->menuConfigMock,
112  'localeResolver' => $this->localeResolverMock,
113  'menuItemChecker' => $this->menuItemCheckerMock,
114  'anchorRenderer' => $this->anchorRendererMock
115  ]
116  );
117  }
118 
120  {
121  $this->menuModelMock = $this->getMockBuilder(MenuModel::class)
122  ->disableOriginalConstructor()
123  ->getMock();
124  $this->menu->setActive($this->activeItemMock);
125  $this->menuConfigMock->expects($this->once())->method('getMenu')->willReturn($this->menuModelMock);
126  $this->menuModelMock->expects($this->once())
127  ->method('get')
128  ->willReturn($this->activeItemMock);
129 
130  $this->assertEquals($this->activeItemMock, $this->menu->getActiveItemModel());
131  }
132 
134  {
135  $this->menuModelMock = $this->getMockBuilder(MenuModel::class)
136  ->disableOriginalConstructor()
137  ->getMock();
138  $this->menu->setActive(null);
139  $this->menuConfigMock->expects($this->once())->method('getMenu')->willReturn($this->menuModelMock);
140  $this->menuModelMock->expects($this->once())
141  ->method('get')
142  ->willReturn(null);
143 
144  $this->assertFalse($this->menu->getActiveItemModel());
145  }
146 }