/** * @dataProvider filterProvider */ public function testAddInStockFilterToCollection($configMock) { $collectionMock = $this->getMockBuilder('Magento\\Catalog\\Model\\ResourceModel\\Product\\Link\\Product\\Collection')->disableOriginalConstructor()->getMock(); $collectionMock->expects($this->any())->method('joinField'); $this->scopeConfigMock->expects($this->any())->method('getValue')->willReturn($configMock); $this->assertNull($this->stock->addInStockFilterToCollection($collectionMock)); }
/** * @param Link $subject * @param Collection $collection * @return Collection * @SuppressWarnings(PHPMD.UnusedFormalParameter) */ public function afterGetProductCollection(Link $subject, Collection $collection) { if ($this->configuration->isShowOutOfStock() != 1) { $this->stockHelper->addInStockFilterToCollection($collection); } return $collection; }
/** * Get crosssell products collection * * @return \Magento\Catalog\Model\Resource\Product\Link\Product\Collection */ protected function _getCollection() { /** @var \Magento\Catalog\Model\Resource\Product\Link\Product\Collection $collection */ $collection = $this->_productLinkFactory->create()->useCrossSellLinks()->getProductCollection()->setStoreId($this->_storeManager->getStore()->getId())->addStoreFilter()->setPageSize($this->_maxItemCount)->setVisibility($this->_productVisibility->getVisibleInCatalogIds()); $this->_addProductAttributesAndPrices($collection); $this->stockHelper->addInStockFilterToCollection($collection); return $collection; }
/** * Retrieve linked product collection * * @return ProductCollection */ public function getProductCollection() { $collection = $this->_productCollectionFactory->create()->setLinkModel($this); $this->stockHelper->addInStockFilterToCollection($collection); return $collection; }