|
7 | 7 |
|
8 | 8 | namespace Magento\Catalog\Model;
|
9 | 9 |
|
10 |
| -use Magento\Backend\Model\Auth; |
11 | 10 | use Magento\Catalog\Api\ProductRepositoryInterface;
|
12 | 11 | use Magento\Catalog\Model\ResourceModel\Product as ProductResource;
|
13 | 12 | use Magento\Framework\Api\SearchCriteriaBuilder;
|
14 | 13 | use Magento\Framework\Exception\LocalizedException;
|
15 | 14 | use Magento\TestFramework\Catalog\Model\ProductLayoutUpdateManager;
|
16 | 15 | use Magento\TestFramework\Helper\Bootstrap;
|
17 |
| -use Magento\TestFramework\Bootstrap as TestBootstrap; |
18 |
| -use Magento\Framework\Acl\Builder; |
19 | 16 |
|
20 | 17 | /**
|
21 | 18 | * Provide tests for ProductRepository model.
|
|
26 | 23 | */
|
27 | 24 | class ProductRepositoryTest extends \PHPUnit\Framework\TestCase
|
28 | 25 | {
|
| 26 | + private const STUB_STORE_ID = 1; |
| 27 | + |
| 28 | + private const STUB_STORE_ID_GLOBAL = 0; |
| 29 | + |
| 30 | + private const STUB_PRODUCT_NAME = 'Simple Product'; |
| 31 | + |
| 32 | + private const STUB_UPDATED_PRODUCT_NAME = 'updated'; |
| 33 | + |
| 34 | + private const STUB_PRODUCT_SKU = 'simple'; |
| 35 | + |
29 | 36 | /**
|
30 | 37 | * Test subject.
|
31 | 38 | *
|
@@ -235,22 +242,53 @@ public function testCustomLayout(): void
|
235 | 242 | }
|
236 | 243 |
|
237 | 244 | /**
|
238 |
| - * Tests product repository update should use provided store code. |
| 245 | + * Tests product repository update |
239 | 246 | *
|
| 247 | + * @dataProvider productUpdateDataProvider |
240 | 248 | * @magentoDataFixture Magento/Catalog/_files/product_simple.php
|
| 249 | + * @param int $storeId |
| 250 | + * @param int $checkStoreId |
| 251 | + * @param string $expectedNameStore |
| 252 | + * @param string $expectedNameCheckedStore |
241 | 253 | */
|
242 |
| - public function testProductUpdate(): void |
243 |
| - { |
244 |
| - $sku = 'simple'; |
245 |
| - $nameUpdated = 'updated'; |
| 254 | + public function testProductUpdate( |
| 255 | + int $storeId, |
| 256 | + int $checkStoreId, |
| 257 | + string $expectedNameStore, |
| 258 | + string $expectedNameCheckedStore |
| 259 | + ): void { |
| 260 | + $sku = self::STUB_PRODUCT_SKU; |
246 | 261 |
|
247 |
| - $product = $this->productRepository->get($sku, false, 0); |
248 |
| - $product->setName($nameUpdated); |
| 262 | + $product = $this->productRepository->get($sku, false, $storeId); |
| 263 | + $product->setName(self::STUB_UPDATED_PRODUCT_NAME); |
249 | 264 | $this->productRepository->save($product);
|
250 |
| - $product = $this->productRepository->get($sku, false, 0); |
251 |
| - $this->assertEquals( |
252 |
| - $nameUpdated, |
253 |
| - $product->getName() |
254 |
| - ); |
| 265 | + $productNameStoreId = $this->productRepository->get($sku, false, $storeId)->getName(); |
| 266 | + $productNameCheckedStoreId = $this->productRepository->get($sku, false, $checkStoreId)->getName(); |
| 267 | + |
| 268 | + $this->assertEquals($expectedNameStore, $productNameStoreId); |
| 269 | + $this->assertEquals($expectedNameCheckedStore, $productNameCheckedStoreId); |
| 270 | + } |
| 271 | + |
| 272 | + /** |
| 273 | + * Product update data provider |
| 274 | + * |
| 275 | + * @return array |
| 276 | + */ |
| 277 | + public function productUpdateDataProvider(): array |
| 278 | + { |
| 279 | + return [ |
| 280 | + 'Updating for global store' => [ |
| 281 | + self::STUB_STORE_ID_GLOBAL, |
| 282 | + self::STUB_STORE_ID, |
| 283 | + self::STUB_UPDATED_PRODUCT_NAME, |
| 284 | + self::STUB_UPDATED_PRODUCT_NAME, |
| 285 | + ], |
| 286 | + 'Updating for store' => [ |
| 287 | + self::STUB_STORE_ID, |
| 288 | + self::STUB_STORE_ID_GLOBAL, |
| 289 | + self::STUB_UPDATED_PRODUCT_NAME, |
| 290 | + self::STUB_PRODUCT_NAME, |
| 291 | + ], |
| 292 | + ]; |
255 | 293 | }
|
256 | 294 | }
|
0 commit comments