public function testBuild() { $data = [['label' => 'Test label', 'value' => 34, 'count' => 21235], ['label' => 'New label for test', 'value' => 2344, 'count' => 122]]; foreach ($data as $item) { $this->dataBuilder->addItemData($item['label'], $item['value'], $item['count']); } $actualData = $this->dataBuilder->build(); $this->assertEquals($data, $actualData); }
/** * @param int $range * @param int[] $dbRanges * @return array */ public function renderRangeData($range, $dbRanges) { if (empty($dbRanges)) { return []; } $lastIndex = array_keys($dbRanges); $lastIndex = $lastIndex[count($lastIndex) - 1]; foreach ($dbRanges as $index => $count) { $fromPrice = $index == 1 ? '' : ($index - 1) * $range; $toPrice = $index == $lastIndex ? '' : $index * $range; $this->itemDataBuilder->addItemData($this->renderRangeLabel($fromPrice, $toPrice), $fromPrice . '-' . $toPrice, $count); } return $this->itemDataBuilder->build(); }
/** * @param string $label * @param $value * @param int $count * @param null $selected * @param null $type */ public function addItemData($label, $value, $count, $selected = null, $type = null) { if ($this->bxDataHelper->isFilterLayoutEnabled($this->_layer)) { $this->_itemsData[] = ['label' => $label, 'value' => $value, 'count' => $count, 'selected' => $selected, 'type' => $type]; } else { parent::addItemData($label, $value, $count); } }
/** * @SuppressWarnings(PHPMD.ExcessiveMethodLength) */ public function testGetItemsIfFacetedDataIsEmpty() { $attributeCode = 'attributeCode'; $this->attribute->expects($this->atLeastOnce())->method('getAttributeCode')->willReturn($attributeCode); $this->attribute->expects($this->atLeastOnce())->method('getIsFilterable')->willReturn(0); $this->target->setAttributeModel($this->attribute); $this->fulltextCollection->expects($this->once())->method('getFacetedData')->willReturn([]); $this->itemDataBuilder->expects($this->once())->method('build')->willReturn([]); $this->assertEquals([], $this->target->getItems()); }
/** * @SuppressWarnings(PHPMD.ExcessiveMethodLength) */ public function testGetItemsWithoutApply() { $attributeCode = 'attributeCode'; $selectedOptions = [['label' => 'selectedOptionLabel1', 'value' => 'selectedOptionValue1', 'count' => 25], ['label' => 'selectedOptionLabel2', 'value' => 'selectedOptionValue2', 'count' => 13], ['label' => 'selectedOptionLabel3', 'value' => 'selectedOptionValue3', 'count' => 10]]; $facetedData = ['selectedOptionValue1' => ['count' => 10], 'selectedOptionValue2' => ['count' => 45], 'selectedOptionValue3' => ['count' => 50]]; $builtData = [['label' => $selectedOptions[0]['label'], 'value' => $selectedOptions[0]['value'], 'count' => $facetedData[$selectedOptions[0]['value']]['count']], ['label' => $selectedOptions[1]['label'], 'value' => $selectedOptions[1]['value'], 'count' => $facetedData[$selectedOptions[1]['value']]['count']], ['label' => $selectedOptions[2]['label'], 'value' => $selectedOptions[2]['value'], 'count' => $facetedData[$selectedOptions[2]['value']]['count']]]; $this->attribute->expects($this->exactly(2))->method('getAttributeCode')->will($this->returnValue($attributeCode)); $this->target->setAttributeModel($this->attribute); $this->frontend->expects($this->once())->method('getSelectOptions')->will($this->returnValue($selectedOptions)); $this->fulltextCollection->expects($this->once())->method('getFacetedData')->will($this->returnValue($facetedData)); $this->itemDataBuilder->expects($this->at(0))->method('addItemData')->with($selectedOptions[0]['label'], $selectedOptions[0]['value'], $facetedData[$selectedOptions[0]['value']]['count'])->will($this->returnSelf()); $this->itemDataBuilder->expects($this->at(1))->method('addItemData')->with($selectedOptions[1]['label'], $selectedOptions[1]['value'], $facetedData[$selectedOptions[1]['value']]['count'])->will($this->returnSelf()); $this->itemDataBuilder->expects($this->once())->method('build')->will($this->returnValue($builtData)); $this->fulltextCollection->expects($this->once())->method('getSize')->will($this->returnValue(50)); $expectedFilterItems = [$this->createFilterItem(0, $builtData[0]['label'], $builtData[0]['value'], $builtData[0]['count']), $this->createFilterItem(1, $builtData[1]['label'], $builtData[1]['value'], $builtData[1]['count']), $this->createFilterItem(2, $builtData[2]['label'], $builtData[2]['value'], $builtData[2]['count'])]; $result = $this->target->getItems(); $this->assertEquals($expectedFilterItems, $result); }
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', 'getProductCount'])->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)); $category1->expects($this->any())->method('getProductCount')->will($this->returnValue(10)); $category2 = $this->getMockBuilder('\\Magento\\Catalog\\Model\\Category')->disableOriginalConstructor()->setMethods(['getId', 'getName', 'getIsActive', 'getProductCount'])->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)); $category2->expects($this->any())->method('getProductCount')->will($this->returnValue(45)); $categories = [$category1, $category2]; $this->category->expects($this->once())->method('getChildrenCategories')->will($this->returnValue($categories)); $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(); }