ToOrderAddressTest.php 2.8 KB

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