TokenUiComponentProviderTest.php 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\Braintree\Test\Unit\Model\Ui\PayPal;
  7. use Magento\Braintree\Model\Ui\PayPal\TokenUiComponentProvider;
  8. use Magento\Framework\UrlInterface;
  9. use Magento\Vault\Model\Ui\TokenUiComponentInterfaceFactory;
  10. use Magento\Vault\Model\Ui\TokenUiComponentInterface;
  11. use Magento\Vault\Api\Data\PaymentTokenInterface;
  12. use PHPUnit_Framework_MockObject_MockObject as MockObject;
  13. /**
  14. * Class TokenUiComponentProviderTest
  15. */
  16. class TokenUiComponentProviderTest extends \PHPUnit\Framework\TestCase
  17. {
  18. /**
  19. * @var UrlInterface|MockObject
  20. */
  21. private $urlBuilder;
  22. /**
  23. * @var PaymentTokenInterface|MockObject
  24. */
  25. private $paymentToken;
  26. /**
  27. * @var TokenUiComponentInterface|MockObject
  28. */
  29. private $tokenComponent;
  30. /**
  31. * @var TokenUiComponentInterfaceFactory|MockObject
  32. */
  33. private $componentFactory;
  34. /**
  35. * @var TokenUiComponentProvider
  36. */
  37. private $componentProvider;
  38. protected function setUp()
  39. {
  40. $this->componentFactory = $this->getMockBuilder(TokenUiComponentInterfaceFactory::class)
  41. ->disableOriginalConstructor()
  42. ->setMethods(['create'])
  43. ->getMock();
  44. $this->tokenComponent = $this->getMockForAbstractClass(TokenUiComponentInterface::class);
  45. $this->urlBuilder = $this->getMockForAbstractClass(UrlInterface::class);
  46. $this->paymentToken = $this->getMockForAbstractClass(PaymentTokenInterface::class);
  47. $this->componentProvider = new TokenUiComponentProvider(
  48. $this->componentFactory,
  49. $this->urlBuilder
  50. );
  51. }
  52. /**
  53. * @covers \Magento\Braintree\Model\Ui\PayPal\TokenUiComponentProvider::getComponentForToken
  54. */
  55. public function testGetComponentForToken()
  56. {
  57. $tokenDetails = [
  58. 'payerEmail' => 'john.doe@example.com'
  59. ];
  60. $hash = '4g1mn4ew0vj23n2jf';
  61. $this->paymentToken->expects(static::once())
  62. ->method('getTokenDetails')
  63. ->willReturn(json_encode($tokenDetails));
  64. $this->componentFactory->expects(static::once())
  65. ->method('create')
  66. ->willReturn($this->tokenComponent);
  67. $this->paymentToken->expects(static::once())
  68. ->method('getPublicHash')
  69. ->willReturn($hash);
  70. $this->urlBuilder->expects(static::once())
  71. ->method('getUrl');
  72. $actual = $this->componentProvider->getComponentForToken($this->paymentToken);
  73. static::assertEquals($this->tokenComponent, $actual);
  74. }
  75. }