AccountTokensTest.php 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\Vault\Test\Unit\Block\Customer;
  7. use Magento\Framework\TestFramework\Unit\Helper\ObjectManager;
  8. use Magento\Vault\Api\Data\PaymentTokenInterface;
  9. use Magento\Vault\Block\Customer\AccountTokens;
  10. use Magento\Vault\Model\AccountPaymentTokenFactory;
  11. use Magento\Vault\Model\CreditCardTokenFactory;
  12. use Magento\Vault\Model\CustomerTokenManagement;
  13. use Magento\Vault\Model\PaymentToken;
  14. use PHPUnit_Framework_MockObject_MockObject as MockObject;
  15. /**
  16. * Class AccountTokensTest
  17. */
  18. class AccountTokensTest extends \PHPUnit\Framework\TestCase
  19. {
  20. /**
  21. * @var CustomerTokenManagement|MockObject
  22. */
  23. private $tokenManagement;
  24. /**
  25. * @var AccountTokens
  26. */
  27. private $block;
  28. /**
  29. * @var ObjectManager
  30. */
  31. private $objectManager;
  32. protected function setUp()
  33. {
  34. $this->objectManager = new ObjectManager($this);
  35. $this->tokenManagement = $this->getMockBuilder(CustomerTokenManagement::class)
  36. ->disableOriginalConstructor()
  37. ->setMethods(['getCustomerSessionTokens'])
  38. ->getMock();
  39. $this->block = $this->objectManager->getObject(AccountTokens::class, [
  40. 'customerTokenManagement' => $this->tokenManagement
  41. ]);
  42. }
  43. /**
  44. * @covers \Magento\Vault\Block\Customer\AccountTokens::getPaymentTokens
  45. */
  46. public function testGetPaymentTokens()
  47. {
  48. $cardToken = $this->objectManager->getObject(PaymentToken::class, [
  49. 'data' => [PaymentTokenInterface::TYPE => CreditCardTokenFactory::TOKEN_TYPE_CREDIT_CARD]
  50. ]);
  51. $token = $this->objectManager->getObject(PaymentToken::class, [
  52. 'data' => [PaymentTokenInterface::TYPE => AccountPaymentTokenFactory::TOKEN_TYPE_ACCOUNT]
  53. ]);
  54. $this->tokenManagement->expects(static::once())
  55. ->method('getCustomerSessionTokens')
  56. ->willReturn([$cardToken, $token]);
  57. $actual = $this->block->getPaymentTokens();
  58. static::assertCount(1, $actual);
  59. /** @var PaymentTokenInterface $actualToken */
  60. $actualToken = array_pop($actual);
  61. static::assertEquals(AccountPaymentTokenFactory::TOKEN_TYPE_ACCOUNT, $actualToken->getType());
  62. }
  63. }