public function testGetItems() { $objectManager = \Magento\TestFramework\Helper\Bootstrap::getObjectManager(); $request = $objectManager->get('Magento\\TestFramework\\Request'); $request->setParam('cat', 3); $this->_model->apply($request); /** @var $category \Magento\Catalog\Model\Category */ $category = $objectManager->get('Magento\\Framework\\Registry')->registry(self::CURRENT_CATEGORY_FILTER); $this->assertInstanceOf('Magento\\Catalog\\Model\\Category', $category); $this->assertEquals(3, $category->getId()); $items = $this->_model->getItems(); $this->assertInternalType('array', $items); $this->assertEquals(2, count($items)); /** @var $item \Magento\Catalog\Model\Layer\Filter\Item */ $item = $items[0]; $this->assertInstanceOf('Magento\\Catalog\\Model\\Layer\\Filter\\Item', $item); $this->assertSame($this->_model, $item->getFilter()); $this->assertEquals('Category 1.1', $item->getLabel()); $this->assertEquals(4, $item->getValue()); $this->assertEquals(2, $item->getCount()); $item = $items[1]; $this->assertInstanceOf('Magento\\Catalog\\Model\\Layer\\Filter\\Item', $item); $this->assertEquals('Category 1.2', $item->getLabel()); $this->assertEquals(13, $item->getValue()); $this->assertEquals(2, $item->getCount()); }
/** * @SuppressWarnings(PHPMD.ExcessiveMethodLength) */ public function testGetItems() { $this->category->expects($this->any())->method('getIsActive')->will($this->returnValue(true)); $category1 = $this->getMockBuilder('\\Magento\\Catalog\\Model\\Category')->disableOriginalConstructor()->setMethods(['getId', 'getName', 'getIsActive'])->getMock(); $category1->expects($this->atLeastOnce())->method('getId')->will($this->returnValue(120)); $category1->expects($this->once())->method('getName')->will($this->returnValue('Category 1')); $category1->expects($this->once())->method('getIsActive')->will($this->returnValue(true)); $category2 = $this->getMockBuilder('\\Magento\\Catalog\\Model\\Category')->disableOriginalConstructor()->setMethods(['getId', 'getName', 'getIsActive'])->getMock(); $category2->expects($this->atLeastOnce())->method('getId')->will($this->returnValue(5641)); $category2->expects($this->once())->method('getName')->will($this->returnValue('Category 2')); $category2->expects($this->once())->method('getIsActive')->will($this->returnValue(true)); $category3 = $this->getMockBuilder('\\Magento\\Catalog\\Model\\Category')->disableOriginalConstructor()->setMethods(['getId', 'getName', 'getIsActive'])->getMock(); $category3->expects($this->atLeastOnce())->method('getId')->will($this->returnValue(777)); $category3->expects($this->never())->method('getName'); $category3->expects($this->once())->method('getIsActive')->will($this->returnValue(true)); $categories = [$category1, $category2, $category3]; $this->category->expects($this->once())->method('getChildrenCategories')->will($this->returnValue($categories)); $facetedData = [120 => ['count' => 10], 5641 => ['count' => 45], 777 => ['count' => 80]]; $this->fulltextCollection->expects($this->once())->method('getSize')->will($this->returnValue(50)); $this->fulltextCollection->expects($this->once())->method('getFacetedData')->with('category')->will($this->returnValue($facetedData)); $builtData = [['label' => 'Category 1', 'value' => 120, 'count' => 10], ['label' => 'Category 2', 'value' => 5641, 'count' => 45]]; $this->itemDataBuilder->expects($this->at(0))->method('addItemData')->with('Category 1', 120, 10)->will($this->returnSelf()); $this->itemDataBuilder->expects($this->at(1))->method('addItemData')->with('Category 2', 5641, 45)->will($this->returnSelf()); $this->itemDataBuilder->expects($this->once())->method('build')->will($this->returnValue($builtData)); $this->target->getItems(); }
/** * Constructor. * * @SuppressWarnings(PHPMD.BooleanArgumentFlag) * * @param \Magento\Catalog\Model\Layer\Filter\ItemFactory $filterItemFactory Filter item factory. * @param \Magento\Store\Model\StoreManagerInterface $storeManager Store manager. * @param \Magento\Catalog\Model\Layer $layer Search layer. * @param \Magento\Catalog\Model\Layer\Filter\Item\DataBuilder $itemDataBuilder Item data builder. * @param \Magento\Framework\Escaper $escaper HTML escaper. * @param \Magento\Catalog\Model\Layer\Filter\DataProvider\CategoryFactory $dataProviderFactory Data provider. * @param boolean $useUrlRewrites Uses URLs rewrite for rendering. * @param array $data Custom data. */ public function __construct(\Magento\Catalog\Model\Layer\Filter\ItemFactory $filterItemFactory, \Magento\Store\Model\StoreManagerInterface $storeManager, \Magento\Catalog\Model\Layer $layer, \Magento\Catalog\Model\Layer\Filter\Item\DataBuilder $itemDataBuilder, \Magento\Framework\Escaper $escaper, \Magento\Catalog\Model\Layer\Filter\DataProvider\CategoryFactory $dataProviderFactory, $useUrlRewrites = false, array $data = []) { parent::__construct($filterItemFactory, $storeManager, $layer, $itemDataBuilder, $escaper, $dataProviderFactory, $data); $this->escaper = $escaper; $this->dataProvider = $dataProviderFactory->create(['layer' => $this->getLayer()]); $this->useUrlRewrites = $useUrlRewrites; }