PaymentAdditionalInformationProviderTest.php 2.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. declare(strict_types=1);
  7. namespace Magento\Braintree\Test\Unit\Model\InstantPurchase;
  8. use Magento\Braintree\Gateway\Command\GetPaymentNonceCommand;
  9. use Magento\Braintree\Model\InstantPurchase\PaymentAdditionalInformationProvider;
  10. use Magento\Payment\Gateway\Command\Result\ArrayResult;
  11. use Magento\Vault\Api\Data\PaymentTokenInterface;
  12. /**
  13. * @covers \Magento\Braintree\Model\InstantPurchase\PaymentAdditionalInformationProvider
  14. */
  15. class PaymentAdditionalInformationProviderTest extends \PHPUnit\Framework\TestCase
  16. {
  17. /**
  18. * Testable Object
  19. *
  20. * @var PaymentAdditionalInformationProvider
  21. */
  22. private $paymentAdditionalInformationProvider;
  23. /**
  24. * @var GetPaymentNonceCommand|\PHPUnit_Framework_MockObject_MockObject
  25. */
  26. private $getPaymentNonceCommandMock;
  27. /**
  28. * @var PaymentTokenInterface|\PHPUnit_Framework_MockObject_MockObject
  29. */
  30. private $paymentTokenMock;
  31. /**
  32. * @var ArrayResult|\PHPUnit_Framework_MockObject_MockObject
  33. */
  34. private $arrayResultMock;
  35. /**
  36. * Set Up
  37. *
  38. * @return void
  39. */
  40. protected function setUp()
  41. {
  42. $this->getPaymentNonceCommandMock = $this->createMock(GetPaymentNonceCommand::class);
  43. $this->paymentTokenMock = $this->createMock(PaymentTokenInterface::class);
  44. $this->arrayResultMock = $this->createMock(ArrayResult::class);
  45. $this->paymentAdditionalInformationProvider = new PaymentAdditionalInformationProvider(
  46. $this->getPaymentNonceCommandMock
  47. );
  48. }
  49. /**
  50. * Test getAdditionalInformation method
  51. *
  52. * @return void
  53. */
  54. public function testGetAdditionalInformation()
  55. {
  56. $customerId = 15;
  57. $publicHash = '3n4b7sn48g';
  58. $paymentMethodNonce = 'test';
  59. $this->paymentTokenMock->expects($this->once())->method('getCustomerId')->willReturn($customerId);
  60. $this->paymentTokenMock->expects($this->once())->method('getPublicHash')->willReturn($publicHash);
  61. $this->getPaymentNonceCommandMock->expects($this->once())->method('execute')->with([
  62. PaymentTokenInterface::CUSTOMER_ID => $customerId,
  63. PaymentTokenInterface::PUBLIC_HASH => $publicHash,
  64. ])->willReturn($this->arrayResultMock);
  65. $this->arrayResultMock->expects($this->once())->method('get')
  66. ->willReturn(['paymentMethodNonce' => $paymentMethodNonce]);
  67. $expected = [
  68. 'payment_method_nonce' => $paymentMethodNonce,
  69. ];
  70. $actual = $this->paymentAdditionalInformationProvider->getAdditionalInformation($this->paymentTokenMock);
  71. self::assertEquals($expected, $actual);
  72. }
  73. }