1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
<?php
/**
* Copyright © Magento, Inc. All rights reserved.
* See COPYING.txt for license details.
*/
namespace Magento\Quote\Test\Unit\Model\Quote\Address;
use Magento\Framework\TestFramework\Unit\Helper\ObjectManager;
/**
* Tests Address convert to order
*/
class ToOrderAddressTest extends \PHPUnit\Framework\TestCase
{
/**
* @var \Magento\Framework\DataObject\Copy | \PHPUnit_Framework_MockObject_MockObject
*/
protected $objectCopyMock;
/**
* @var \Magento\Sales\Model\Order\AddressRepository | \PHPUnit_Framework_MockObject_MockObject
*/
protected $orderAddressRepositoryMock;
/**
* @var \Magento\Sales\Api\Data\OrderInterface | \PHPUnit_Framework_MockObject_MockObject
*/
protected $orderInterfaceMock;
/**
* @var \Magento\Quote\Model\Quote\Address\ToOrder
*/
protected $converter;
/**
* @var \Magento\Framework\Api\DataObjectHelper
*/
protected $dataObjectHelper;
protected function setUp()
{
$this->orderAddressRepositoryMock = $this->createPartialMock(
\Magento\Sales\Model\Order\AddressRepository::class,
['create']
);
$this->objectCopyMock = $this->createMock(\Magento\Framework\DataObject\Copy::class);
$this->orderInterfaceMock = $this->createMock(\Magento\Sales\Api\Data\OrderAddressInterface::class);
$this->dataObjectHelper = $this->createMock(\Magento\Framework\Api\DataObjectHelper::class);
$objectManager = new ObjectManager($this);
$this->converter = $objectManager->getObject(
\Magento\Quote\Model\Quote\Address\ToOrderAddress::class,
[
'orderAddressRepository' => $this->orderAddressRepositoryMock,
'objectCopyService' => $this->objectCopyMock,
'dataObjectHelper' => $this->dataObjectHelper
]
);
}
public function testConvert()
{
$orderData = ['test' => 'test1'];
$data = ['test' => 'beer'];
/**
* @var \Magento\Quote\Model\Quote\Address $object
*/
$object = $this->createMock(\Magento\Quote\Model\Quote\Address::class);
$this->objectCopyMock->expects($this->once())->method('getDataFromFieldset')->with(
'sales_convert_quote_address',
'to_order_address',
$object
)->willReturn($orderData);
$this->dataObjectHelper->expects($this->once())->method('populateWithArray')
->with($this->orderInterfaceMock, ['test' => 'beer'], \Magento\Sales\Api\Data\OrderAddressInterface::class)
->willReturnSelf();
$this->orderAddressRepositoryMock->expects($this->once())
->method('create')
->willReturn($this->orderInterfaceMock);
$this->assertSame($this->orderInterfaceMock, $this->converter->convert($object, $data));
}
}