PaymentTokenTest.php 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\Vault\Model\ResourceModel;
  7. use Magento\Braintree\Model\Ui\PayPal\ConfigProvider as PayPalConfigProvider;
  8. use Magento\Framework\App\ResourceConnection;
  9. use Magento\Framework\DB\Adapter\AdapterInterface;
  10. use Magento\Framework\ObjectManagerInterface;
  11. use Magento\Sales\Model\Order;
  12. use Magento\TestFramework\Helper\Bootstrap;
  13. use Magento\Vault\Model\PaymentTokenManagement;
  14. use Magento\Vault\Setup\InstallSchema;
  15. class PaymentTokenTest extends \PHPUnit\Framework\TestCase
  16. {
  17. const CUSTOMER_ID = 1;
  18. const TOKEN = 'mx29vk';
  19. const ORDER_INCREMENT_ID = '100000001';
  20. /**
  21. * @var ObjectManagerInterface
  22. */
  23. private $objectManager;
  24. /**
  25. * @var PaymentToken
  26. */
  27. private $paymentToken;
  28. /**
  29. * @var ResourceConnection
  30. */
  31. private $resource;
  32. /**
  33. * @var AdapterInterface
  34. */
  35. private $connection;
  36. /**
  37. * @var PaymentTokenManagement
  38. */
  39. private $paymentTokenManagement;
  40. /**
  41. * @var Order
  42. */
  43. private $order;
  44. protected function setUp()
  45. {
  46. $this->objectManager = Bootstrap::getObjectManager();
  47. $this->order = $this->objectManager->create(Order::class);
  48. $this->paymentToken = $this->objectManager->create(PaymentToken::class);
  49. $this->paymentTokenManagement = $this->objectManager->get(PaymentTokenManagement::class);
  50. $this->resource = $this->objectManager->get(ResourceConnection::class);
  51. $this->connection = $this->resource->getConnection();
  52. }
  53. /**
  54. * @magentoDataFixture Magento/Sales/_files/order.php
  55. * @magentoDataFixture Magento/Braintree/_files/paypal_vault_token.php
  56. */
  57. public function testAddLinkToOrderPaymentExists()
  58. {
  59. $this->order->loadByIncrementId(self::ORDER_INCREMENT_ID);
  60. $paymentToken = $this->paymentTokenManagement
  61. ->getByGatewayToken(self::TOKEN, PayPalConfigProvider::PAYPAL_CODE, self::CUSTOMER_ID);
  62. $this->connection->insert(
  63. $this->resource->getTableName('vault_payment_token_order_payment_link'),
  64. [
  65. 'order_payment_id' => $this->order->getPayment()->getEntityId(),
  66. 'payment_token_id' => $paymentToken->getEntityId()
  67. ]
  68. );
  69. static::assertTrue(
  70. $this->paymentToken->addLinkToOrderPayment(
  71. $paymentToken->getEntityId(),
  72. $this->order->getPayment()->getEntityId()
  73. )
  74. );
  75. }
  76. /**
  77. * @magentoDataFixture Magento/Sales/_files/order.php
  78. * @magentoDataFixture Magento/Braintree/_files/paypal_vault_token.php
  79. */
  80. public function testAddLinkToOrderPaymentCreate()
  81. {
  82. $this->order->loadByIncrementId(self::ORDER_INCREMENT_ID);
  83. $paymentToken = $this->paymentTokenManagement
  84. ->getByGatewayToken(self::TOKEN, PayPalConfigProvider::PAYPAL_CODE, self::CUSTOMER_ID);
  85. $select = $this->connection->select()
  86. ->from($this->resource->getTableName('vault_payment_token_order_payment_link'))
  87. ->where('order_payment_id = ?', (int) $this->order->getPayment()->getEntityId())
  88. ->where('payment_token_id =?', (int) $paymentToken->getEntityId());
  89. static::assertEmpty($this->connection->fetchRow($select));
  90. static::assertTrue(
  91. $this->paymentToken->addLinkToOrderPayment(
  92. $paymentToken->getEntityId(),
  93. $this->order->getPayment()->getEntityId()
  94. )
  95. );
  96. static::assertNotEmpty($this->connection->fetchRow($select));
  97. }
  98. }