Skip to content

Commit c7a8ebd

Browse files
author
Michail Slabko
committed
MAGETWO-34954: [GITHUB] Move Topmenu CategoryData creation to a public method to enable plugin
1 parent c7e5d36 commit c7a8ebd

File tree

2 files changed

+26
-12
lines changed

2 files changed

+26
-12
lines changed

app/code/Magento/Catalog/Model/Observer.php

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -131,13 +131,9 @@ protected function _addCategoriesToMenu($categories, $parentCategoryNode, $block
131131
if (!$category->getIsActive()) {
132132
continue;
133133
}
134-
135134
$block->addIdentity(\Magento\Catalog\Model\Category::CACHE_TAG . '_' . $category->getId());
136-
137135
$tree = $parentCategoryNode->getTree();
138-
139136
$categoryData = $this->getMenuCategoryData($category);
140-
141137
$categoryNode = new \Magento\Framework\Data\Tree\Node($categoryData, 'id', $tree, $parentCategoryNode);
142138
$parentCategoryNode->addChild($categoryNode);
143139

@@ -151,7 +147,6 @@ protected function _addCategoriesToMenu($categories, $parentCategoryNode, $block
151147
}
152148
}
153149

154-
155150
/**
156151
* Get category data to be added to the Menu
157152
*
@@ -160,7 +155,6 @@ protected function _addCategoriesToMenu($categories, $parentCategoryNode, $block
160155
*/
161156
public function getMenuCategoryData($category)
162157
{
163-
164158
$nodeId = 'category-node-' . $category->getId();
165159

166160
$categoryData = [

app/code/Magento/Catalog/Test/Unit/Model/ObserverTest.php

Lines changed: 26 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -18,27 +18,27 @@ class ObserverTest extends \PHPUnit_Framework_TestCase
1818
protected $_observer;
1919

2020
/**
21-
* @var \Magento\Catalog\Helper\Category
21+
* @var \PHPUnit_Framework_MockObject_MockObject|\Magento\Catalog\Helper\Category
2222
*/
2323
protected $_catalogCategory;
2424

2525
/**
26-
* @var \Magento\Catalog\Model\Category
26+
* @var \PHPUnit_Framework_MockObject_MockObject|\Magento\Catalog\Model\Category
2727
*/
2828
protected $_category;
2929

3030
/**
31-
* @var \Magento\Catalog\Model\Category
31+
* @var \PHPUnit_Framework_MockObject_MockObject|\Magento\Catalog\Model\Category
3232
*/
3333
protected $_childrenCategory;
3434

3535
/**
36-
* @var \Magento\Catalog\Model\Indexer\Category\Flat\State
36+
* @var \PHPUnit_Framework_MockObject_MockObject|\Magento\Catalog\Model\Indexer\Category\Flat\State
3737
*/
3838
protected $_categoryFlatState;
3939

4040
/**
41-
* @var \Magento\Store\Model\StoreManagerInterface
41+
* @var \PHPUnit_Framework_MockObject_MockObject|\Magento\Store\Model\StoreManagerInterface
4242
*/
4343
protected $_storeManager;
4444

@@ -64,11 +64,13 @@ public function setUp()
6464
->disableOriginalConstructor()
6565
->getMock();
6666

67+
$layerResolver = $this->_getCleanMock('Magento\Catalog\Model\Layer\Resolver');
68+
$layerResolver->expects($this->once())->method('get')->willReturn(null);
6769
$this->_observer = (new ObjectManager($this))->getObject('Magento\Catalog\Model\Observer', [
6870
'categoryResource' => $this->_getCleanMock('\Magento\Catalog\Model\Resource\Category'),
6971
'catalogProduct' => $this->_getCleanMock('\Magento\Catalog\Model\Resource\Product'),
7072
'storeManager' => $this->_storeManager,
71-
'catalogLayer' => $this->_getCleanMock('\Magento\Catalog\Model\Layer\Category'),
73+
'layerResolver' => $layerResolver,
7274
'indexIndexer' => $this->_getCleanMock('\Magento\Index\Model\Indexer'),
7375
'catalogCategory' => $this->_catalogCategory,
7476
'catalogData' => $this->_getCleanMock('\Magento\Catalog\Helper\Data'),
@@ -176,4 +178,22 @@ public function testAddCatalogToTopMenuItemsWithFlat()
176178

177179
$this->_observer->addCatalogToTopmenuItems($observer);
178180
}
181+
182+
public function testGetMenuCategoryData()
183+
{
184+
$category = $this->getMock('Magento\Catalog\Model\Category', ['getId', 'getName'], [], '', false);
185+
$category->expects($this->once())->method('getId')->willReturn('id');
186+
$category->expects($this->once())->method('getName')->willReturn('name');
187+
$this->_catalogCategory->expects($this->once())->method('getCategoryUrl')->willReturn('url');
188+
189+
$this->assertEquals(
190+
[
191+
'name' => 'name',
192+
'id' => 'category-node-id',
193+
'url' => 'url',
194+
'is_active' => false,
195+
],
196+
$this->_observer->getMenuCategoryData($category)
197+
);
198+
}
179199
}

0 commit comments

Comments
 (0)