6 declare(strict_types=1);
12 use Magento\CatalogInventory\Api\StockItemCriteriaInterfaceFactory;
20 use PHPUnit\Framework\TestCase;
27 private $sourceItemRepository;
32 private $searchCriteriaBuilder;
37 private $sourceItemsSave;
42 private $productRepository;
47 private $isProductSalable;
52 private $stockItemRepository;
57 private $stockItemCriteriaFactory;
64 StockItemCriteriaInterfaceFactory::class
81 public function testBackorderedZeroQtyProductIsSalable()
83 $product = $this->productRepository->get(
'SKU-2');
84 $stockItemSearchCriteria = $this->stockItemCriteriaFactory->create();
85 $stockItemSearchCriteria->setProductsFilter(
$product->getId());
86 $stockItemsCollection = $this->stockItemRepository->getList($stockItemSearchCriteria);
89 $legacyStockItem = current($stockItemsCollection->getItems());
90 $legacyStockItem->setBackorders(1);
91 $legacyStockItem->setUseConfigBackorders(0);
92 $this->stockItemRepository->save($legacyStockItem);
98 $this->assertTrue($this->isProductSalable->execute(
'SKU-2', 20));
99 $this->assertTrue($this->isProductSalable->execute(
'SKU-2', 30));
106 private function getSourceItemBySku(
string $sku): SourceItemInterface
109 ->addFilter(
'sku', $sku)
111 $sourceItemSearchResult = $this->sourceItemRepository->getList(
$searchCriteria);
113 return current($sourceItemSearchResult->getItems());
static getObjectManager()