Skip to content

Commit 24fed2a

Browse files
committed
MAGETWO-60103: [Backport] Configurable variation is displayed on category/product page when is out of stock - 2.1
1 parent 287b563 commit 24fed2a

File tree

1 file changed

+35
-1
lines changed

1 file changed

+35
-1
lines changed

dev/tests/integration/testsuite/Magento/ConfigurableProduct/Model/Product/Type/ConfigurableTest.php

Lines changed: 35 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
use Magento\Catalog\Api\Data\ProductInterface;
1212
use Magento\Catalog\Api\ProductRepositoryInterface;
1313
use Magento\Catalog\Model\Product;
14-
use Magento\ConfigurableProduct\Model\Product\Type\Configurable;
14+
use Magento\CatalogInventory\Model\Stock\Status;
1515
use Magento\TestFramework\Helper\Bootstrap;
1616

1717
/**
@@ -465,6 +465,40 @@ protected function _getAttributeByCode($code)
465465
);
466466
}
467467

468+
/**
469+
* @magentoAppIsolation enabled
470+
* @dataProvider allowProductsDataProvider
471+
*/
472+
public function testGetSalableUsedProducts($isInStock, $status, $expectedCount)
473+
{
474+
/** @var ProductRepositoryInterface $productRepository */
475+
$productRepository = Bootstrap::getObjectManager()->create(ProductRepositoryInterface::class);
476+
$childProduct = $productRepository->get('simple_10');
477+
$childProduct->setStatus($status);
478+
$stockItem = $childProduct->getExtensionAttributes()->getStockItem();
479+
$stockItem->setIsInStock($isInStock);
480+
$productRepository->save($childProduct);
481+
482+
$products = $this->model->getSalableUsedProducts($this->product);
483+
$this->assertCount($expectedCount, $products);
484+
foreach ($products as $product) {
485+
$this->assertInstanceOf('Magento\Catalog\Model\Product', $product);
486+
}
487+
}
488+
489+
/**
490+
* @return array
491+
*/
492+
public function allowProductsDataProvider()
493+
{
494+
return [
495+
[Status::STATUS_OUT_OF_STOCK, false, 1],
496+
[Status::STATUS_OUT_OF_STOCK, true, 1],
497+
[Status::STATUS_IN_STOCK, false, 1],
498+
[Status::STATUS_IN_STOCK, true, 2],
499+
];
500+
}
501+
468502
/**
469503
* Select one of the options and "prepare for cart" with a proper buy request
470504
*

0 commit comments

Comments
 (0)