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());
 }
Exemple #2
0
 /**
  * @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();
 }
Exemple #3
0
 /**
  * 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;
 }