PaymentDataObjectFactoryTest.php 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\Payment\Test\Unit\Gateway\Data;
  7. use Magento\Payment\Gateway\Data\PaymentDataObjectFactory;
  8. use Magento\Framework\ObjectManagerInterface;
  9. use Magento\Sales\Model\Order\Payment;
  10. use Magento\Payment\Gateway\Data\Order\OrderAdapter;
  11. use Magento\Sales\Model\Order;
  12. /**
  13. * Class PaymentDataObjectFactoryTest
  14. */
  15. class PaymentDataObjectFactoryTest extends \PHPUnit\Framework\TestCase
  16. {
  17. /** @var PaymentDataObjectFactory */
  18. protected $model;
  19. /**
  20. * @var ObjectManagerInterface|\PHPUnit_Framework_MockObject_MockObject
  21. */
  22. protected $objectManagerMock;
  23. /**
  24. * @var \Magento\Payment\Gateway\Data\Order\OrderAdapterFactory|\PHPUnit_Framework_MockObject_MockObject
  25. */
  26. protected $orderAdapterFactoryMock;
  27. /**
  28. * @var \Magento\Payment\Gateway\Data\Quote\QuoteAdapterFactory|\PHPUnit_Framework_MockObject_MockObject
  29. */
  30. protected $quoteAdapterFactoryMock;
  31. /**
  32. * @var \Magento\Payment\Gateway\Data\PaymentDataObject|\PHPUnit_Framework_MockObject_MockObject
  33. */
  34. protected $paymentDataObjectMock;
  35. protected function setUp()
  36. {
  37. $this->objectManagerMock = $this->getMockBuilder(\Magento\Framework\ObjectManagerInterface::class)
  38. ->getMockForAbstractClass();
  39. $this->orderAdapterFactoryMock =
  40. $this->getMockBuilder(\Magento\Payment\Gateway\Data\Order\OrderAdapterFactory::class)
  41. ->setMethods(['create'])
  42. ->disableOriginalConstructor()
  43. ->getMock();
  44. $this->quoteAdapterFactoryMock =
  45. $this->getMockBuilder(\Magento\Payment\Gateway\Data\Quote\QuoteAdapterFactory::class)
  46. ->setMethods(['create'])
  47. ->disableOriginalConstructor()
  48. ->getMock();
  49. $this->paymentDataObjectMock =
  50. $this->createMock(\Magento\Payment\Gateway\Data\PaymentDataObjectInterface::class);
  51. $this->model = new PaymentDataObjectFactory(
  52. $this->objectManagerMock,
  53. $this->orderAdapterFactoryMock,
  54. $this->quoteAdapterFactoryMock
  55. );
  56. }
  57. public function testCreatePaymentDataObjectFromOrder()
  58. {
  59. /** @var Order $orderMock */
  60. $orderMock = $this->getMockBuilder(\Magento\Sales\Model\Order::class)
  61. ->disableOriginalConstructor()
  62. ->getMock();
  63. /** @var OrderAdapter $orderAdapterMock */
  64. $orderAdapterMock = $this->getMockBuilder(\Magento\Payment\Gateway\Data\Order\OrderAdapter::class)
  65. ->disableOriginalConstructor()
  66. ->getMock();
  67. /** @var \Magento\Sales\Model\Order\Payment $paymentInfoMock */
  68. $paymentInfoMock = $this->getMockBuilder(\Magento\Sales\Model\Order\Payment::class)
  69. ->disableOriginalConstructor()
  70. ->getMock();
  71. $paymentInfoMock->expects($this->once())
  72. ->method('getOrder')
  73. ->willReturn($orderMock);
  74. $this->orderAdapterFactoryMock->expects($this->once())
  75. ->method('create')
  76. ->with(['order' => $orderMock])
  77. ->willReturn($orderAdapterMock);
  78. $this->objectManagerMock->expects($this->once())
  79. ->method('create')
  80. ->with(
  81. \Magento\Payment\Gateway\Data\PaymentDataObject::class,
  82. [
  83. 'order' => $orderAdapterMock,
  84. 'payment' => $paymentInfoMock
  85. ]
  86. )->willReturn($this->paymentDataObjectMock);
  87. $this->assertSame($this->paymentDataObjectMock, $this->model->create($paymentInfoMock));
  88. }
  89. public function testCreatePaymentDataObjectFromQuote()
  90. {
  91. /** @var \Magento\Quote\Model\Quote $quoteMock */
  92. $quoteMock = $this->getMockBuilder(\Magento\Quote\Model\Quote::class)
  93. ->disableOriginalConstructor()
  94. ->getMock();
  95. /** @var OrderAdapter $orderAdapterMock */
  96. $quoteAdapterMock = $this->getMockBuilder(\Magento\Payment\Gateway\Data\Quote\QuoteAdapter::class)
  97. ->disableOriginalConstructor()
  98. ->getMock();
  99. /** @var \Magento\Quote\Model\Quote\Payment $paymentInfoMock */
  100. $paymentInfoMock = $this->getMockBuilder(\Magento\Quote\Model\Quote\Payment::class)
  101. ->disableOriginalConstructor()
  102. ->getMock();
  103. $paymentInfoMock->expects($this->once())
  104. ->method('getQuote')
  105. ->willReturn($quoteMock);
  106. $this->quoteAdapterFactoryMock->expects($this->once())
  107. ->method('create')
  108. ->with(['quote' => $quoteMock])
  109. ->willReturn($quoteAdapterMock);
  110. $this->objectManagerMock->expects($this->once())
  111. ->method('create')
  112. ->with(
  113. \Magento\Payment\Gateway\Data\PaymentDataObject::class,
  114. [
  115. 'order' => $quoteAdapterMock,
  116. 'payment' => $paymentInfoMock
  117. ]
  118. )->willReturn($this->paymentDataObjectMock);
  119. $this->assertSame($this->paymentDataObjectMock, $this->model->create($paymentInfoMock));
  120. }
  121. }