|
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