6 declare(strict_types=1);
11 use Magento\CatalogInventory\Api\StockItemCriteriaInterfaceFactory;
21 use PHPUnit\Framework\TestCase;
28 private $reservationBuilder;
33 private $appendReservations;
38 private $cleanupReservations;
43 private $isProductSalable;
48 private $productRepository;
53 private $stockItemRepository;
58 private $stockItemCriteriaFactory;
63 private $sourceItemRepository;
68 private $searchCriteriaBuilder;
73 private $sourceItemsSave;
89 StockItemCriteriaInterfaceFactory::class
114 self::assertEquals($isSalable, $this->isProductSalable->execute($sku, $stockId));
124 [
'SKU-1', 20,
false],
126 [
'SKU-2', 10,
false],
129 [
'SKU-3', 10,
false],
130 [
'SKU-3', 20,
false],
131 [
'SKU-3', 30,
false],
148 $this->appendReservations->execute([
149 $this->reservationBuilder->setStockId(10)->setSku(
'SKU-1')->setQuantity(-8.5)->build(),
151 self::assertFalse($this->isProductSalable->execute(
'SKU-1', 10));
153 $this->appendReservations->execute([
155 $this->reservationBuilder->setStockId(10)->setSku(
'SKU-1')->setQuantity(8.5)->build(),
157 $this->cleanupReservations->execute();
testProductIsOutOfStockIfReservationsArePresent()
testProductIsSalable(string $sku, int $stockId, bool $isSalable)
productIsSalableDataProvider()
static getObjectManager()