Skip to content

Commit 43966e6

Browse files
Merge remote-tracking branch 'mainline/2.2-develop' into BundledPR-9-11
2 parents fcbe574 + 264ecc0 commit 43966e6

File tree

2 files changed

+15
-0
lines changed

2 files changed

+15
-0
lines changed

app/code/Magento/Downloadable/Model/Quote/Item/CartItemProcessor.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,7 @@ public function __construct(
6363
public function convertToBuyRequest(CartItemInterface $cartItem)
6464
{
6565
if ($cartItem->getProductOption()
66+
&& $cartItem->getProductOption()->getExtensionAttributes()
6667
&& $cartItem->getProductOption()->getExtensionAttributes()->getDownloadableOption()
6768
) {
6869
$downloadableLinks = $cartItem->getProductOption()->getExtensionAttributes()->getDownloadableOption()

app/code/Magento/Downloadable/Test/Unit/Model/Quote/Item/CartItemProcessorTest.php

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -111,6 +111,20 @@ public function testConvertToBuyRequest()
111111
$this->assertEquals($buyRequestMock, $this->model->convertToBuyRequest($cartItemMock));
112112
}
113113

114+
public function testConvertToBuyRequestWithoutExtensionAttributes()
115+
{
116+
$cartItemMock = $this->createPartialMock(
117+
\Magento\Quote\Model\Quote\Item::class,
118+
['getProductOption', 'setProductOption', 'getOptionByCode', 'getQty']
119+
);
120+
$productOptionMock = $this->createMock(\Magento\Quote\Api\Data\ProductOptionInterface::class);
121+
122+
$cartItemMock->expects($this->any())->method('getProductOption')->willReturn($productOptionMock);
123+
$productOptionMock->expects($this->atLeastOnce())->method('getExtensionAttributes')->willReturn(null);
124+
125+
$this->assertNull($this->model->convertToBuyRequest($cartItemMock));
126+
}
127+
114128
public function testProcessProductOptions()
115129
{
116130
$downloadableLinks = [1, 2];

0 commit comments

Comments
 (0)