Skip to content

Commit a3be7e6

Browse files
author
Roman Lytvynenko
committed
MC-30438: Inconsisten behavior when importing configurable products with custom options and when specifying store_view_code
1 parent fd94c5d commit a3be7e6

File tree

2 files changed

+37
-8
lines changed

2 files changed

+37
-8
lines changed

dev/tests/integration/testsuite/Magento/CatalogImportExport/Model/Import/ProductTest.php

Lines changed: 33 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -33,9 +33,9 @@
3333
use Magento\ImportExport\Model\Import\Source\Csv;
3434
use Magento\Store\Model\Store;
3535
use Magento\Store\Model\StoreManagerInterface;
36+
use Magento\TestFramework\Helper\Bootstrap as BootstrapHelper;
3637
use Magento\UrlRewrite\Model\ResourceModel\UrlRewriteCollection;
3738
use Psr\Log\LoggerInterface;
38-
use Magento\TestFramework\Helper\Bootstrap as BootstrapHelper;
3939

4040
/**
4141
* Class ProductTest
@@ -403,7 +403,7 @@ public function testSaveCustomOptionsWithMultipleStoreViews()
403403
$pathToFile = __DIR__ . '/_files/' . $importFile;
404404
$importModel = $this->createImportModel($pathToFile);
405405
$errors = $importModel->validateData();
406-
$this->assertTrue($errors->getErrorsCount() == 0);
406+
$this->assertTrue($errors->getErrorsCount() == 0, 'Import File Validation Failed');
407407
$importModel->importData();
408408
/** @var \Magento\Catalog\Api\ProductRepositoryInterface $productRepository */
409409
$productRepository = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->create(
@@ -422,20 +422,41 @@ public function testSaveCustomOptionsWithMultipleStoreViews()
422422
$actualOptions = $actualData['options'];
423423
sort($expectedOptions);
424424
sort($actualOptions);
425-
$this->assertEquals($expectedOptions, $actualOptions);
425+
$this->assertEquals(
426+
$expectedOptions,
427+
$actualOptions,
428+
'Expected and actual options arrays doesnt match'
429+
);
426430

427431
// assert of options data
428-
$this->assertCount(count($expectedData['data']), $actualData['data']);
429-
$this->assertCount(count($expectedData['values']), $actualData['values']);
432+
$this->assertCount(
433+
count($expectedData['data']),
434+
$actualData['data'],
435+
'Expected and actual data count doesnt match'
436+
);
437+
$this->assertCount(
438+
count($expectedData['values']),
439+
$actualData['values'],
440+
'Expected and actual values count doesnt match'
441+
);
442+
430443
foreach ($expectedData['options'] as $expectedId => $expectedOption) {
431444
$elementExist = false;
432445
// find value in actual options and values
433446
foreach ($actualData['options'] as $actualId => $actualOption) {
434447
if ($actualOption == $expectedOption) {
435448
$elementExist = true;
436-
$this->assertEquals($expectedData['data'][$expectedId], $actualData['data'][$actualId]);
449+
$this->assertEquals(
450+
$expectedData['data'][$expectedId],
451+
$actualData['data'][$actualId],
452+
'Expected data doesnt match actual data'
453+
);
437454
if (array_key_exists($expectedId, $expectedData['values'])) {
438-
$this->assertEquals($expectedData['values'][$expectedId], $actualData['values'][$actualId]);
455+
$this->assertEquals(
456+
$expectedData['values'][$expectedId],
457+
$actualData['values'][$actualId],
458+
'Expected values doesnt match actual data'
459+
);
439460
}
440461
unset($actualData['options'][$actualId]);
441462
// remove value in case of duplicating key values
@@ -448,7 +469,11 @@ public function testSaveCustomOptionsWithMultipleStoreViews()
448469
// Make sure that after importing existing options again, option IDs and option value IDs are not changed
449470
$customOptionValues = $this->getCustomOptionValues($sku);
450471
$this->createImportModel($pathToFile)->importData();
451-
$this->assertEquals($customOptionValues, $this->getCustomOptionValues($sku));
472+
$this->assertEquals(
473+
$customOptionValues,
474+
$this->getCustomOptionValues($sku),
475+
'Option IDs changed after second import'
476+
);
452477
}
453478
}
454479

dev/tests/integration/testsuite/Magento/CatalogImportExport/Model/Import/_files/product_with_custom_options_and_multiple_store_views.csv

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,3 +2,7 @@ sku,website_code,store_view_code,attribute_set_code,product_type,name,descriptio
22
simple,base,,Default,simple,New Product,,,9,1,"Catalog, Search","base,secondwebsite",,10,,,,Taxable Goods,new-product,,,,,,,,,,,,,,,,,,,,,,,,"name=Test Field Title,type=field,required=1,sku=1-text,price=100|name=Test Date and Time Title,type=date_time,required=1,sku=2-date,price=200|name=Test Select,type=drop_down,required=1,sku=3-1-select,price=310,option_title=Select Option 1|name=Test Select,type=drop_down,required=1,sku=3-2-select,price=320,option_title=Select Option 2|name=Test Checkbox,type=checkbox,required=1,sku=4-1-select,price=410,option_title=Checkbox Option 1|name=Test Checkbox,type=checkbox,required=1,sku=4-2-select,price=420,option_title=Checkbox Option 2|name=Test Radio,type=radio,required=1,sku=5-1-radio,price=510,option_title=Radio Option 1|name=Test Radio,type=radio,required=1,sku=5-2-radio,price=520,option_title=Radio Option 2",,1,1,999,0,0,0,1,10000,1,1,0,0,,,,,,,,,,,Block after Info Column,,,
33
simple,,default,Default,simple,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,"name=Test Field Title_default,type=field,sku=1-text|name=Test Date and Time Title_default,type=date_time,sku=2-date|name=Test Select_default,type=drop_down,sku=3-1-select,option_title=Select Option 1_default|name=Test Select_default,type=drop_down,sku=3-2-select,option_title=Select Option 2_default|name=Test Checkbox_default,type=checkbox,sku=4-1-select,option_title=Checkbox Option 1_default|name=Test Checkbox_default,type=checkbox,sku=4-2-select,option_title=Checkbox Option 2_default|name=Test Radio_default,type=radio,sku=5-1-radio,option_title=Radio Option 1_default|name=Test Radio_default,type=radio,sku=5-2-radio,option_title=Radio Option 2_default",,,,,,,,,,,,,,,,,,,,,,,,,,,
44
simple,,secondstore,Default,simple,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,"name=Test Field Title_fixture_second_store,type=field,sku=1-text,price=101|name=Test Date and Time Title_fixture_second_store,type=date_time,sku=2-date,price=201|name=Test Select_fixture_second_store,type=drop_down,sku=3-1-select,price=311,option_title=Select Option 1_fixture_second_store|name=Test Select_fixture_second_store,type=drop_down,sku=3-2-select,price=321,option_title=Select Option 2_fixture_second_store|name=Test Checkbox_second_store,type=checkbox,sku=4-1-select,price=411,option_title=Checkbox Option 1_second_store|name=Test Checkbox_second_store,type=checkbox,sku=4-2-select,price=421,option_title=Checkbox Option 2_second_store|name=Test Radio_fixture_second_store,type=radio,sku=5-1-radio,price=511,option_title=Radio Option 1_fixture_second_store|name=Test Radio_fixture_second_store,type=radio,sku=5-2-radio,price=521,option_title=Radio Option 2_fixture_second_store",,,,,,,,,,,,,,,,,,,,,,,,,,,
5+
simple,base,secondstore,Default,simple,New Product 2,,,9,1,"Catalog, Search","base,secondwebsite",,10,,,,Taxable Goods,new-product,,,,,,,,,,,,,,,,,,,,,,,,,,1,1,999,0,0,0,1,10000,1,1,0,0,,,,,,,,,,,Block after Info Column,,,
6+
simple,base,,Default,simple,New Product 3,,,9,1,"Catalog, Search","base,secondwebsite",,10,,,,Taxable Goods,new-product,,,,,,,,,,,,,,,,,,,,,,,,"name=Line 1,type=field,max_characters=30,required=1,option_title=Line 1|name=Line 2,type=field,max_characters=30,required=0,option_title=Line 2",,1,1,999,0,0,0,1,10000,1,1,0,0,,,,,,,,,,,Block after Info Column,,,
7+
simple,base,secondstore,Default,simple,New Product 4,,,9,1,"Catalog, Search","base,secondwebsite",,10,,,,Taxable Goods,new-product,,,,,,,,,,,,,,,,,,,,,,,,,,1,1,999,0,0,0,1,10000,1,1,0,0,,,,,,,,,,,Block after Info Column,,,
8+
simple,base,,Default,simple,New Product 5,,,9,1,"Catalog, Search","base,secondwebsite",,10,,,,Taxable Goods,new-product,,,,,,,,,,,,,,,,,,,,,,,,"name=Line 3,type=field,max_characters=30,required=1,option_title=Line 3|name=Line 4,type=field,max_characters=30,required=0,option_title=Line 4",,1,1,999,0,0,0,1,10000,1,1,0,0,,,,,,,,,,,Block after Info Column,,,

0 commit comments

Comments
 (0)