Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
ApplyStockConditionToSelectOnDefaultStockTest.php
Go to the documentation of this file.
1 <?php
6 declare(strict_types=1);
7 
9 
14 use PHPUnit\Framework\TestCase;
20 
22 {
26  private $applyStockConditionToSelect;
27 
31  private $defaultSourceProvider;
32 
36  private $sourceItemRepository;
37 
41  private $searchCriteriaBuilder;
42 
46  private $getSourceItemsBySku;
47 
51  protected function setUp()
52  {
53  parent::setUp();
54 
55  $this->applyStockConditionToSelect = Bootstrap::getObjectManager()->get(ApplyStockConditionToSelect::class);
56  $this->defaultSourceProvider = Bootstrap::getObjectManager()->get(DefaultSourceProviderInterface::class);
57  $this->sourceItemRepository = Bootstrap::getObjectManager()->get(SourceItemRepositoryInterface::class);
58  $this->searchCriteriaBuilder = Bootstrap::getObjectManager()->get(SearchCriteriaBuilder::class);
59  $this->getSourceItemsBySku = Bootstrap::getObjectManager()->get(GetSourceItemsBySkuInterface::class);
60  }
61 
68  public function testExecute()
69  {
71  $resource = Bootstrap::getObjectManager()->get(ResourceConnection::class);
72 
74  $select = $resource->getConnection()->select();
75  $select->from(['eav_index' => $resource->getTableName('catalog_product_index_eav')], 'entity_id');
76  $this->applyStockConditionToSelect->execute('eav_index', 'eav_index_stock', $select);
77 
78  $result = $select->query()->fetchAll();
79 
84  self::assertEquals(5, count($result));
85 
86  $searchCriteria = $this->searchCriteriaBuilder
87  ->addFilter(SourceItemInterface::SKU, ['SKU-1', 'SKU-2', 'SKU-3', 'SKU-4', 'SKU-5'], 'in')
88  ->addFilter(SourceItemInterface::SOURCE_CODE, $this->defaultSourceProvider->getCode())
89  ->create();
90  $sourceItems = $this->sourceItemRepository->getList($searchCriteria)->getItems();
91  self::assertEquals(4, count($sourceItems));
92 
96  self::assertEmpty($this->getSourceItemsBySku->execute('SKU-5'));
97  }
98 }
$resource
Definition: bulk.php:12
$searchCriteria
$sourceItems