ReservationPlacingOnUseConfigManageStockSetToZeroTest.php 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. declare(strict_types=1);
  7. namespace Magento\InventorySales\Test\Integration\StockManagement;
  8. use Magento\InventoryReservationsApi\Model\CleanupReservationsInterface;
  9. use Magento\InventoryReservationsApi\Model\GetReservationsQuantityInterface;
  10. use Magento\InventoryReservationsApi\Model\AppendReservationsInterface;
  11. use Magento\InventoryReservationsApi\Model\ReservationBuilderInterface;
  12. use Magento\TestFramework\Helper\Bootstrap;
  13. use PHPUnit\Framework\TestCase;
  14. class ReservationPlacingOnUseConfigManageStockSetToZeroTest extends TestCase
  15. {
  16. /**
  17. * We broke transaction during indexation so we need to clean db state manually
  18. */
  19. protected function tearDown()
  20. {
  21. Bootstrap::getObjectManager()->get(CleanupReservationsInterface::class)->execute();
  22. }
  23. /**
  24. * @magentoDataFixture ../../../../app/code/Magento/InventoryApi/Test/_files/products.php
  25. * @magentoDataFixture ../../../../app/code/Magento/InventoryApi/Test/_files/sources.php
  26. * @magentoDataFixture ../../../../app/code/Magento/InventoryApi/Test/_files/stocks.php
  27. * @magentoDataFixture ../../../../app/code/Magento/InventoryApi/Test/_files/stock_source_links.php
  28. * @magentoDataFixture ../../../../app/code/Magento/InventoryApi/Test/_files/source_items.php
  29. * @magentoDataFixture ../../../../app/code/Magento/InventoryIndexer/Test/_files/reindex_inventory.php
  30. * @magentoDataFixture ../../../../app/code/Magento/InventorySalesApi/Test/_files/websites_with_stores.php
  31. * @magentoDataFixture ../../../../app/code/Magento/InventorySalesApi/Test/_files/stock_website_sales_channels.php
  32. *
  33. * @magentoDbIsolation disabled
  34. */
  35. public function testPlacingReservationOnUseConfigManageStockSetToZero()
  36. {
  37. $appendReservations = Bootstrap::getObjectManager()->get(AppendReservationsInterface::class);
  38. $reservationBuilder = Bootstrap::getObjectManager()->get(ReservationBuilderInterface::class);
  39. $getReservationQuantity = Bootstrap::getObjectManager()->get(GetReservationsQuantityInterface::class);
  40. $appendReservations->execute(
  41. [
  42. $reservationBuilder->setStockId(10)->setSku('SKU-4')->setQuantity(2)->build()
  43. ]
  44. );
  45. self::assertEquals(0, $getReservationQuantity->execute('SKU-4', 10));
  46. }
  47. }