/** * Before prepare product collection handler * * @param \Magento\Catalog\Model\Layer $subject * @param \Magento\Catalog\Model\ResourceModel\Collection\AbstractCollection $collection * * @return void * @SuppressWarnings(PHPMD.UnusedFormalParameter) */ public function beforePrepareProductCollection(\Magento\Catalog\Model\Layer $subject, \Magento\Catalog\Model\ResourceModel\Collection\AbstractCollection $collection) { if ($this->_isEnabledShowOutOfStock()) { return; } $this->stockHelper->addIsInStockFilterToCollection($collection); }
public function testAddIsInStockFilterToCollection() { $collectionMock = $this->getMockBuilder('Magento\\Catalog\\Model\\ResourceModel\\Product\\Collection')->disableOriginalConstructor()->getMock(); $stockStatusMock = $this->getMockBuilder('Magento\\CatalogInventory\\Model\\ResourceModel\\Stock\\Status')->disableOriginalConstructor()->setMethods(['addStockDataToCollection'])->getMock(); $stockStatusMock->expects($this->once())->method('addStockDataToCollection')->with($collectionMock); $this->statusFactoryMock->expects($this->once())->method('create')->willReturn($stockStatusMock); $this->assertNull($this->stock->addIsInStockFilterToCollection($collectionMock)); }
/** * @param Collection $productCollection * @param bool $printQuery * @param bool $logQuery * @return array */ public function beforeLoad(Collection $productCollection, $printQuery = false, $logQuery = false) { $this->stockHelper->addIsInStockFilterToCollection($productCollection); return [$printQuery, $logQuery]; }