Skip to content

Commit 9a02ca3

Browse files
committed
MAGETWO-92402: Write tests for price indexer parallelization
1 parent e3ca0a7 commit 9a02ca3

File tree

2 files changed

+49
-10
lines changed

2 files changed

+49
-10
lines changed

dev/tests/integration/framework/Magento/TestFramework/Annotation/IndexerDimensionMode.php

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -111,9 +111,11 @@ public function startTest(TestCase $test)
111111
$this->fail("Invalid @magentoDbIsolation declaration: $dbIsolation[0]", $test);
112112
}
113113

114-
if ($annotations[0] == Processor::INDEXER_ID) {
114+
list($indexerType, $indexerMode) = explode(' ', $annotations[0]);
115+
116+
if ($indexerType == Processor::INDEXER_ID) {
115117
$this->isDimensionMode = true;
116-
$this->setDimensionMode(DimensionModeConfiguration::DIMENSION_WEBSITE_AND_CUSTOMER_GROUP, $test);
118+
$this->setDimensionMode($indexerMode, $test);
117119
}
118120
}
119121

dev/tests/integration/testsuite/Magento/Catalog/Model/Product/Type/PriceWithDimensionTest.php

Lines changed: 45 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,14 @@
66
namespace Magento\Catalog\Model\Product\Type;
77

88
use Magento\Catalog\Model\Product;
9+
use Magento\Catalog\Model\ProductRepository;
10+
use Magento\Framework\App\ResourceConnection;
11+
use Magento\Framework\DataObject;
12+
use Magento\Catalog\Model\Indexer\Product\Price\PriceTableResolver;
13+
use Magento\Framework\Indexer\DimensionFactory;
14+
use Magento\Store\Model\Indexer\WebsiteDimensionProvider;
15+
use Magento\Customer\Model\Indexer\CustomerGroupDimensionProvider;
16+
use Magento\TestFramework\Helper\Bootstrap;
917

1018
/**
1119
* @magentoDbIsolation disabled
@@ -22,20 +30,49 @@ class PriceWithDimensionTest extends \PHPUnit\Framework\TestCase
2230

2331
protected function setUp()
2432
{
25-
$this->_model = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->create(
33+
$this->_model = Bootstrap::getObjectManager()->create(
2634
\Magento\Catalog\Model\Product\Type\Price::class
2735
);
2836
}
2937

38+
public function testGetPriceFromIndexer()
39+
{
40+
/** @var PriceTableResolver $tableResolver */
41+
$tableResolver = Bootstrap::getObjectManager()->create(PriceTableResolver::class);
42+
43+
/** @var ResourceConnection $resourceConnection */
44+
$resourceConnection = Bootstrap::getObjectManager()->create(ResourceConnection::class);
45+
46+
/** @var DimensionFactory $dimensionFactory */
47+
$dimensionFactory = Bootstrap::getObjectManager()->create(DimensionFactory::class);
48+
$dimension = [
49+
$dimensionFactory->create(CustomerGroupDimensionProvider::DIMENSION_NAME, (string)0),
50+
$dimensionFactory->create(WebsiteDimensionProvider::DIMENSION_NAME, (string)1)
51+
];
52+
$connection = $resourceConnection->getConnection();
53+
$priceTable = $connection->getTableName(
54+
$tableResolver->resolve('catalog_product_index_price', $dimension)
55+
);
56+
57+
$select = $connection->select()->from($priceTable)->where('entity_id = 1');
58+
59+
$return = $connection->fetchAll($select);
60+
61+
$this->assertEquals('10', $return[0]['price']);
62+
$this->assertEquals('10', $return[0]['final_price']);
63+
$this->assertEquals('19', $return[0]['min_price']);
64+
$this->assertEquals('19', $return[0]['max_price']);
65+
}
66+
3067
public function testGetPrice()
3168
{
32-
$this->assertEquals('test', $this->_model->getPrice(new \Magento\Framework\DataObject(['price' => 'test'])));
69+
$this->assertEquals('test', $this->_model->getPrice(new DataObject(['price' => 'test'])));
3370
}
3471

3572
public function testGetFinalPrice()
3673
{
37-
$repository = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->create(
38-
\Magento\Catalog\Model\ProductRepository::class
74+
$repository = Bootstrap::getObjectManager()->create(
75+
ProductRepository::class
3976
);
4077
$product = $repository->get('simple');
4178
// fixture
@@ -58,8 +95,8 @@ public function testGetFinalPrice()
5895

5996
public function testGetFormatedPrice()
6097
{
61-
$repository = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->create(
62-
\Magento\Catalog\Model\ProductRepository::class
98+
$repository = Bootstrap::getObjectManager()->create(
99+
ProductRepository::class
63100
);
64101
$product = $repository->get('simple');
65102
// fixture
@@ -93,7 +130,7 @@ public function testIsTierPriceFixed()
93130
* Build buy request based on product custom options
94131
*
95132
* @param Product $product
96-
* @return \Magento\Framework\DataObject
133+
* @return DataObject
97134
*/
98135
private function prepareBuyRequest(Product $product)
99136
{
@@ -114,6 +151,6 @@ private function prepareBuyRequest(Product $product)
114151
$options[$option->getId()] = $value;
115152
}
116153

117-
return new \Magento\Framework\DataObject(['qty' => 1, 'options' => $options]);
154+
return new DataObject(['qty' => 1, 'options' => $options]);
118155
}
119156
}

0 commit comments

Comments
 (0)