Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
AddStockStatusToSelectOnDefaultStockTest.php
Go to the documentation of this file.
1 <?php
6 declare(strict_types=1);
7 
9 
14 use PHPUnit\Framework\TestCase;
15 
20 {
24  private $stockStatus;
25 
29  private $website;
30 
34  protected function setUp()
35  {
36  parent::setUp();
37 
38  $this->stockStatus = Bootstrap::getObjectManager()->get(StockStatus::class);
39  $this->website = Bootstrap::getObjectManager()->get(Website::class);
40  }
41 
46  public function testAddStockStatusToSelect()
47  {
48  $actualIsSalableCount = $actualNotSalableCount = 0;
49  $expectedIsSalableCount = 3;
50  $expectedNotSalableCount = 2;
51 
53  $collection = Bootstrap::getObjectManager()->create(Collection::class);
54  $this->website->setCode('base');
55  $this->stockStatus->addStockStatusToSelect($collection->getSelect(), $this->website);
56 
57  foreach ($collection as $item) {
58  $item->getIsSalable() === true ? $actualIsSalableCount++ : $actualNotSalableCount++;
59  }
60 
61  self::assertEquals($expectedIsSalableCount, $actualIsSalableCount);
62  self::assertEquals($expectedNotSalableCount, $actualNotSalableCount);
63  self::assertEquals($expectedNotSalableCount + $expectedIsSalableCount, $collection->getSize());
64  }
65 }