Skip to content

Commit 15bd50d

Browse files
author
Serhii Balko
committed
Merge remote-tracking branch 'origin/MC-39809' into 2.4-develop-pr49
2 parents f8625fb + 292c560 commit 15bd50d

File tree

2 files changed

+12
-3
lines changed

2 files changed

+12
-3
lines changed

app/code/Magento/Bundle/Test/Unit/Model/Product/TypeTest.php

+7-1
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@
1111
use Magento\Bundle\Model\Product\Type;
1212
use Magento\Bundle\Model\ResourceModel\BundleFactory;
1313
use Magento\Bundle\Model\ResourceModel\Option\Collection;
14-
use Magento\CatalogRule\Model\ResourceModel\Product\CollectionProcessor;
1514
use Magento\Bundle\Model\ResourceModel\Selection\Collection as SelectionCollection;
1615
use Magento\Bundle\Model\ResourceModel\Selection\CollectionFactory;
1716
use Magento\Bundle\Model\Selection;
@@ -28,6 +27,7 @@
2827
use Magento\CatalogInventory\Api\StockStateInterface;
2928
use Magento\CatalogInventory\Model\StockRegistry;
3029
use Magento\CatalogInventory\Model\StockState;
30+
use Magento\CatalogRule\Model\ResourceModel\Product\CollectionProcessor;
3131
use Magento\Framework\DataObject;
3232
use Magento\Framework\EntityManager\EntityMetadataInterface;
3333
use Magento\Framework\EntityManager\MetadataPool;
@@ -1548,6 +1548,10 @@ public function testPrepareForCartAdvancedSpecifyProductOptions()
15481548
->disableOriginalConstructor()
15491549
->getMock();
15501550

1551+
$buyRequest->method('getOptions')
1552+
->willReturn([333 => ['type' => 'image/jpeg']]);
1553+
$option->method('getId')
1554+
->willReturn(333);
15511555
$this->parentClass($group, $option, $buyRequest, $product);
15521556

15531557
$product->expects($this->any())
@@ -1556,6 +1560,8 @@ public function testPrepareForCartAdvancedSpecifyProductOptions()
15561560
$buyRequest->expects($this->once())
15571561
->method('getBundleOption')
15581562
->willReturn([0, '', 'str']);
1563+
$group->expects($this->once())
1564+
->method('validateUserValue');
15591565

15601566
$result = $this->model->prepareForCartAdvanced($buyRequest, $product);
15611567
$this->assertEquals('Please specify product option(s).', $result);

app/code/Magento/Catalog/Model/Product/Type/AbstractType.php

+5-2
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
* Copyright © Magento, Inc. All rights reserved.
44
* See COPYING.txt for license details.
55
*/
6-
declare(strict_types=1);
76

87
namespace Magento\Catalog\Model\Product\Type;
98

@@ -605,7 +604,11 @@ protected function _prepareOptions(\Magento\Framework\DataObject $buyRequest, $p
605604
if ($product->getSkipCheckRequiredOption() !== true) {
606605
$group->validateUserValue($optionsFromRequest);
607606
} elseif ($optionsFromRequest !== null && isset($optionsFromRequest[$option->getId()])) {
608-
$transport->options[$option->getId()] = $optionsFromRequest[$option->getId()];
607+
if (is_array($optionsFromRequest[$option->getId()])) {
608+
$group->validateUserValue($optionsFromRequest);
609+
} else {
610+
$transport->options[$option->getId()] = $optionsFromRequest[$option->getId()];
611+
}
609612
}
610613

611614
} catch (LocalizedException $e) {

0 commit comments

Comments
 (0)