Skip to content

Commit c524855

Browse files
committed
MAGETWO-53362: Gift Message not returned via API on getList #4414
1 parent 9e3a44d commit c524855

File tree

5 files changed

+65
-176
lines changed

5 files changed

+65
-176
lines changed

app/code/Magento/GiftMessage/Model/Plugin/OrderGet.php

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -126,4 +126,22 @@ protected function getOrderItemGiftMessage(\Magento\Sales\Api\Data\OrderInterfac
126126
}
127127
return $order;
128128
}
129+
130+
/**
131+
* @param \Magento\Sales\Api\OrderRepositoryInterface $subject
132+
* @param \Magento\Sales\Model\ResourceModel\Order\Collection $resultOrder
133+
* @return \Magento\Sales\Model\ResourceModel\Order\Collection
134+
* @SuppressWarnings(PHPMD.UnusedFormalParameter)
135+
*/
136+
public function afterGetList(
137+
\Magento\Sales\Api\OrderRepositoryInterface $subject,
138+
\Magento\Sales\Model\ResourceModel\Order\Collection $resultOrder
139+
) {
140+
/** @var $order */
141+
foreach ($resultOrder->getItems() as $order) {
142+
$this->getOrderGiftMessage($order);
143+
$this->getOrderItemGiftMessage($order);
144+
}
145+
return $resultOrder;
146+
}
129147
}

app/code/Magento/GiftMessage/Model/Plugin/OrderGetList.php

Lines changed: 0 additions & 27 deletions
This file was deleted.

app/code/Magento/GiftMessage/Test/Unit/Model/Plugin/OrderGetListTest.php

Lines changed: 0 additions & 148 deletions
This file was deleted.

app/code/Magento/GiftMessage/Test/Unit/Model/Plugin/OrderGetTest.php

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,11 @@ class OrderGetTest extends \PHPUnit_Framework_TestCase
6666
*/
6767
private $orderRepositoryMock;
6868

69+
/**
70+
* @var \PHPUnit_Framework_MockObject_MockObject
71+
*/
72+
private $collectionMock;
73+
6974
public function setUp()
7075
{
7176
$this->giftMessageOrderRepositoryMock = $this->getMock(
@@ -114,6 +119,15 @@ public function setUp()
114119
$this->orderRepositoryMock = $this->getMock(
115120
\Magento\Sales\Api\OrderRepositoryInterface::class
116121
);
122+
123+
$this->collectionMock = $this->getMock(
124+
\Magento\Sales\Model\ResourceModel\Order\Collection::class,
125+
[],
126+
[],
127+
'',
128+
false
129+
);
130+
117131
$this->plugin = new \Magento\GiftMessage\Model\Plugin\OrderGet(
118132
$this->giftMessageOrderRepositoryMock,
119133
$this->giftMessageOrderItemRepositoryMock,
@@ -230,4 +244,36 @@ public function testGetAfterWhenMessagesAreNotSet()
230244

231245
$this->plugin->afterGet($this->orderRepositoryMock, $this->orderMock);
232246
}
247+
248+
public function testAfterGetList()
249+
{
250+
//set Gift Message List for Order
251+
$orderId = 1;
252+
$this->orderMock->expects($this->once())->method('getEntityId')->willReturn($orderId);
253+
$this->orderMock
254+
->expects($this->once())
255+
->method('getExtensionAttributes')
256+
->willReturn($this->orderExtensionMock);
257+
$this->orderExtensionMock->expects($this->once())->method('getGiftMessage')->willReturn([]);
258+
$this->giftMessageOrderRepositoryMock
259+
->expects($this->once())
260+
->method('get')
261+
->with($orderId)
262+
->willReturn($this->giftMessageMock);
263+
$this->orderExtensionMock
264+
->expects($this->once())
265+
->method('setGiftMessage')
266+
->with($this->giftMessageMock)
267+
->willReturnSelf();
268+
$this->orderMock
269+
->expects($this->once())
270+
->method('setExtensionAttributes')
271+
->with($this->orderExtensionMock)
272+
->willReturnSelf();
273+
274+
// set Gift Message on Item Level
275+
$this->orderMock->expects($this->once())->method('getItems')->willReturn([]);
276+
$this->collectionMock->expects($this->once())->method('getItems')->willReturn([$this->orderMock]);
277+
$this->plugin->afterGetList($this->orderRepositoryMock, $this->collectionMock);
278+
}
233279
}

app/code/Magento/GiftMessage/etc/di.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,6 @@
2727
<type name="Magento\Sales\Api\OrderRepositoryInterface">
2828
<plugin name="save_gift_message" type="Magento\GiftMessage\Model\Plugin\OrderSave"/>
2929
<plugin name="get_gift_message" type="Magento\GiftMessage\Model\Plugin\OrderGet"/>
30-
<plugin name="add_gift_messages_to_orders" type="Magento\GiftMessage\Model\Plugin\OrderGetList"/>
30+
<plugin name="add_gift_messages_to_orders" type="Magento\GiftMessage\Model\Plugin\OrderGet"/>
3131
</type>
3232
</config>

0 commit comments

Comments
 (0)