AgreementTest.php 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\Paypal\Test\Unit\Model\Method;
  7. class AgreementTest extends \PHPUnit\Framework\TestCase
  8. {
  9. /**
  10. * @var \Magento\Framework\TestFramework\Unit\Helper\ObjectManager
  11. */
  12. protected $_helper;
  13. /**
  14. * @var \Magento\Paypal\Model\Method\Agreement
  15. */
  16. protected $_model;
  17. /**
  18. * @var \PHPUnit_Framework_MockObject_MockObject
  19. */
  20. protected $_apiNvpMock;
  21. protected function setUp()
  22. {
  23. $this->_helper = new \Magento\Framework\TestFramework\Unit\Helper\ObjectManager($this);
  24. $paypalConfigMock = $this->getMockBuilder(
  25. \Magento\Paypal\Model\Config::class
  26. )->disableOriginalConstructor()->setMethods(
  27. []
  28. )->getMock();
  29. $this->_apiNvpMock = $this->getMockBuilder(
  30. \Magento\Paypal\Model\Api\Nvp::class
  31. )->disableOriginalConstructor()->setMethods(
  32. ['callDoReferenceTransaction', 'callGetTransactionDetails']
  33. )->getMock();
  34. $proMock = $this->getMockBuilder(
  35. \Magento\Paypal\Model\Pro::class
  36. )->setMethods(
  37. ['getApi', 'setMethod', 'getConfig', 'importPaymentInfo']
  38. )->disableOriginalConstructor()->getMock();
  39. $proMock->expects($this->any())->method('getApi')->will($this->returnValue($this->_apiNvpMock));
  40. $proMock->expects($this->any())->method('getConfig')->will($this->returnValue($paypalConfigMock));
  41. $billingAgreementMock = $this->getMockBuilder(
  42. \Magento\Paypal\Model\Billing\Agreement::class
  43. )->disableOriginalConstructor()->setMethods(
  44. ['load', '__wakeup']
  45. )->getMock();
  46. $billingAgreementMock->expects($this->any())->method('load')->will($this->returnValue($billingAgreementMock));
  47. $agreementFactoryMock = $this->getMockBuilder(
  48. \Magento\Paypal\Model\Billing\AgreementFactory::class
  49. )->disableOriginalConstructor()->setMethods(
  50. ['create']
  51. )->getMock();
  52. $agreementFactoryMock->expects(
  53. $this->any()
  54. )->method(
  55. 'create'
  56. )->will(
  57. $this->returnValue($billingAgreementMock)
  58. );
  59. $cartMock = $this->getMockBuilder(\Magento\Paypal\Model\Cart::class)->disableOriginalConstructor()->getMock();
  60. $cartFactoryMock = $this->getMockBuilder(
  61. \Magento\Paypal\Model\CartFactory::class
  62. )->disableOriginalConstructor()->setMethods(
  63. ['create']
  64. )->getMock();
  65. $cartFactoryMock->expects($this->any())->method('create')->will($this->returnValue($cartMock));
  66. $arguments = [
  67. 'agreementFactory' => $agreementFactoryMock,
  68. 'cartFactory' => $cartFactoryMock,
  69. 'data' => [$proMock],
  70. ];
  71. $this->_model = $this->_helper->getObject(\Magento\Paypal\Model\Method\Agreement::class, $arguments);
  72. }
  73. public function testAuthorizeWithBaseCurrency()
  74. {
  75. $payment = $this->getMockBuilder(
  76. \Magento\Sales\Model\Order\Payment::class
  77. )->disableOriginalConstructor()->setMethods(
  78. ['__wakeup']
  79. )->getMock();
  80. $order = $this->getMockBuilder(
  81. \Magento\Sales\Model\Order::class
  82. )->disableOriginalConstructor()->setMethods(
  83. ['__wakeup']
  84. )->getMock();
  85. $order->setBaseCurrencyCode('USD');
  86. $payment->setOrder($order);
  87. $this->_model->authorize($payment, 10.00);
  88. $this->assertEquals($order->getBaseCurrencyCode(), $this->_apiNvpMock->getCurrencyCode());
  89. }
  90. }