Skip to content

Commit ad971f0

Browse files
Ievgen ShakhsuvarovSerhiy Shkolyarenko
authored andcommitted
MAGETWO-33079: Gift Message information for Order level is not presented on frontend/backend orders
1 parent 5de4492 commit ad971f0

File tree

3 files changed

+66
-0
lines changed

3 files changed

+66
-0
lines changed

app/code/Magento/GiftMessage/Model/Observer.php

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,18 @@ public function salesEventQuoteSubmitBefore($observer)
4848
return $this;
4949
}
5050

51+
/**
52+
* Set gift message to order from address in multiple addresses checkout.
53+
*
54+
* @param \Magento\Framework\Event\Observer $observer
55+
* @return $this
56+
*/
57+
public function multishippingEventCreateOrders($observer)
58+
{
59+
$observer->getEvent()->getOrder()->setGiftMessageId($observer->getEvent()->getAddress()->getGiftMessageId());
60+
return $this;
61+
}
62+
5163
/**
5264
* Duplicates giftmessage from order to quote on import or reorder
5365
*

app/code/Magento/GiftMessage/etc/frontend/events.xml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,4 +12,7 @@
1212
<event name="sales_convert_order_to_quote">
1313
<observer name="giftmessage" instance="Magento\GiftMessage\Model\Observer" method="salesEventOrderToQuote" shared="false" />
1414
</event>
15+
<event name="checkout_type_multishipping_create_orders_single">
16+
<observer name="giftmessage" instance="Magento\GiftMessage\Model\Observer" method="multishippingEventCreateOrders" shared="false" />
17+
</event>
1518
</config>
Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
<?php
2+
/**
3+
* Copyright © 2015 Magento. All rights reserved.
4+
* See COPYING.txt for license details.
5+
*/
6+
namespace Magento\GiftMessage\Model;
7+
8+
class ObserverTest extends \PHPUnit_Framework_TestCase
9+
{
10+
/**
11+
* @var \Magento\GiftMessage\Model\Observer
12+
*/
13+
protected $model;
14+
15+
protected function setUp()
16+
{
17+
$giftMessageFactoryMock = $this->getMock('\Magento\GiftMessage\Model\MessageFactory', [], [], '', false);
18+
$giftMessageMock = $this->getMock('\Magento\GiftMessage\Helper\Message', [], [], '', false);
19+
$this->model = new \Magento\GiftMessage\Model\Observer($giftMessageFactoryMock, $giftMessageMock);
20+
}
21+
22+
public function testMultishippingEventCreateOrders()
23+
{
24+
$giftMessageId = 42;
25+
$observerMock = $this->getMock('\Magento\Framework\Event\Observer');
26+
$eventMock = $this->getMock('\Magento\Framework\Event', ['getOrder', 'getAddress']);
27+
$addressMock = $this->getMock('\Magento\Quote\Model\Quote\Address', ['getGiftMessageId'], [], '', false);
28+
$orderMock = $this->getMock('\Magento\Sales\Model\Order', ['setGiftMessageId'], [], '', false);
29+
$observerMock->expects($this->exactly(2))->method('getEvent')->willReturn($eventMock);
30+
$eventMock->expects($this->once())->method('getAddress')->willReturn($addressMock);
31+
$addressMock->expects($this->once())->method('getGiftMessageId')->willReturn($giftMessageId);
32+
$eventMock->expects($this->once())->method('getOrder')->willReturn($orderMock);
33+
$orderMock->expects($this->once())->method('setGiftMessageId')->with($giftMessageId);
34+
$this->assertEquals($this->model, $this->model->multishippingEventCreateOrders($observerMock));
35+
}
36+
37+
public function testSalesEventQuoteSubmitBefore()
38+
{
39+
$giftMessageId = 42;
40+
$observerMock = $this->getMock('\Magento\Framework\Event\Observer');
41+
$eventMock = $this->getMock('\Magento\Framework\Event', ['getOrder', 'getQuote']);
42+
$quoteMock = $this->getMock('\Magento\Quote\Model\Quote', ['getGiftMessageId'], [], '', false);
43+
$orderMock = $this->getMock('\Magento\Sales\Model\Order', ['setGiftMessageId'], [], '', false);
44+
$observerMock->expects($this->exactly(2))->method('getEvent')->willReturn($eventMock);
45+
$eventMock->expects($this->once())->method('getQuote')->willReturn($quoteMock);
46+
$quoteMock->expects($this->once())->method('getGiftMessageId')->willReturn($giftMessageId);
47+
$eventMock->expects($this->once())->method('getOrder')->willReturn($orderMock);
48+
$orderMock->expects($this->once())->method('setGiftMessageId')->with($giftMessageId);
49+
$this->assertEquals($this->model, $this->model->salesEventQuoteSubmitBefore($observerMock));
50+
}
51+
}

0 commit comments

Comments
 (0)