TokensConfigProviderTest.php 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\Braintree\Model\Ui;
  7. use Magento\Braintree\Model\Ui\PayPal\ConfigProvider as PayPalConfigProvider;
  8. use Magento\Braintree\Model\Ui\PayPal\TokenUiComponentProvider;
  9. use Magento\Customer\Model\Session;
  10. use Magento\Framework\App\Area;
  11. use Magento\Framework\ObjectManagerInterface;
  12. use Magento\TestFramework\Helper\Bootstrap;
  13. use Magento\Vault\Model\PaymentTokenManagement;
  14. use Magento\Vault\Model\Ui\TokensConfigProvider;
  15. use Magento\Vault\Model\Ui\TokenUiComponentProviderInterface;
  16. use PHPUnit\Framework\MockObject_MockObject as MockObject;
  17. /**
  18. * Class TokensConfigProviderTest
  19. */
  20. class TokensConfigProviderTest extends \PHPUnit\Framework\TestCase
  21. {
  22. /**
  23. * @var ObjectManagerInterface
  24. */
  25. private $objectManager;
  26. /**
  27. * @var TokenUiComponentProviderInterface|MockObject
  28. */
  29. private $tokenComponentProvider;
  30. /**
  31. * @var TokensConfigProvider
  32. */
  33. private $configProvider;
  34. /**
  35. * @var Bootstrap
  36. */
  37. private $bootstrap;
  38. protected function setUp()
  39. {
  40. $this->bootstrap = Bootstrap::getInstance();
  41. $this->bootstrap->loadArea(Area::AREA_FRONTEND);
  42. $this->objectManager = Bootstrap::getObjectManager();
  43. $this->tokenComponentProvider = $this->objectManager->get(TokenUiComponentProvider::class);
  44. $this->configProvider = $this->objectManager->create(
  45. TokensConfigProvider::class,
  46. [
  47. 'tokenUiComponentProviders' => [
  48. PayPalConfigProvider::PAYPAL_CODE => $this->tokenComponentProvider
  49. ]
  50. ]
  51. );
  52. }
  53. /**
  54. * @covers \Magento\Vault\Model\Ui\TokensConfigProvider::getConfig
  55. * @magentoDataFixture Magento/Braintree/_files/paypal_vault_token.php
  56. */
  57. public function testGetConfig()
  58. {
  59. $customerId = 1;
  60. $token = 'mx29vk';
  61. $payerEmail = 'john.doe@example.com';
  62. /** @var PaymentTokenManagement $tokenManagement */
  63. $tokenManagement = $this->objectManager->get(PaymentTokenManagement::class);
  64. $paymentToken = $tokenManagement->getByGatewayToken($token, PayPalConfigProvider::PAYPAL_CODE, $customerId);
  65. $item = PayPalConfigProvider::PAYPAL_VAULT_CODE . '_' . $paymentToken->getEntityId();
  66. /** @var Session $session */
  67. $session = $this->objectManager->get(Session::class);
  68. $session->setCustomerId($customerId);
  69. $actual = $this->configProvider->getConfig()['payment']['vault'];
  70. static::assertCount(1, $actual);
  71. static::assertNotEmpty($actual[$item]);
  72. static::assertEquals(PayPalConfigProvider::PAYPAL_VAULT_CODE, $actual[$item]['config']['code']);
  73. static::assertEquals($payerEmail, $actual[$item]['config']['details']['payerEmail']);
  74. }
  75. }