AccountPaymentTokenFactoryTest.php 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\Vault\Test\Unit\Model;
  7. use Magento\Framework\ObjectManagerInterface;
  8. use Magento\Framework\TestFramework\Unit\Helper\ObjectManager;
  9. use Magento\Vault\Api\Data\PaymentTokenInterface;
  10. use Magento\Vault\Model\PaymentTokenFactory;
  11. use Magento\Vault\Model\AccountPaymentTokenFactory;
  12. use Magento\Vault\Model\PaymentToken;
  13. use PHPUnit_Framework_MockObject_MockObject as MockObject;
  14. /**
  15. * Class AccountPaymentTokenFactoryTest
  16. */
  17. class AccountPaymentTokenFactoryTest extends \PHPUnit\Framework\TestCase
  18. {
  19. /**
  20. * @var ObjectManagerInterface|MockObject
  21. */
  22. private $objectManager;
  23. /**
  24. * @var PaymentToken
  25. */
  26. private $paymentToken;
  27. /**
  28. * @var AccountPaymentTokenFactory
  29. */
  30. private $factory;
  31. protected function setUp()
  32. {
  33. $objectManager = new ObjectManager($this);
  34. $tokenTypes = [
  35. 'account' => \Magento\Vault\Api\Data\PaymentTokenFactoryInterface::TOKEN_TYPE_ACCOUNT,
  36. 'credit_card' => \Magento\Vault\Api\Data\PaymentTokenFactoryInterface::TOKEN_TYPE_CREDIT_CARD
  37. ];
  38. $this->paymentToken = $objectManager->getObject(PaymentToken::class);
  39. $this->objectManager = $this->createMock(ObjectManagerInterface::class);
  40. $this->paymentTokenFactory = new PaymentTokenFactory($this->objectManager, $tokenTypes);
  41. $this->factory = new AccountPaymentTokenFactory($this->objectManager, $this->paymentTokenFactory);
  42. }
  43. /**
  44. * @covers \Magento\Vault\Model\AccountPaymentTokenFactory::create
  45. */
  46. public function testCreate()
  47. {
  48. $this->objectManager->expects(static::once())
  49. ->method('create')
  50. ->willReturn($this->paymentToken);
  51. $this->paymentToken->setType(\Magento\Vault\Api\Data\PaymentTokenFactoryInterface::TOKEN_TYPE_ACCOUNT);
  52. /** @var PaymentTokenInterface $paymentToken */
  53. $paymentToken = $this->factory->create();
  54. static::assertInstanceOf(PaymentTokenInterface::class, $paymentToken);
  55. static::assertEquals(AccountPaymentTokenFactory::TOKEN_TYPE_ACCOUNT, $paymentToken->getType());
  56. }
  57. }