VoidTest.php 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\Paypal\Model;
  7. /**
  8. * @SuppressWarnings(PHPMD.CouplingBetweenObjects)
  9. */
  10. class VoidTest extends \PHPUnit\Framework\TestCase
  11. {
  12. /**
  13. * @magentoDataFixture Magento/Paypal/_files/order_payflowpro.php
  14. * @magentoConfigFixture current_store payment/payflowpro/active 1
  15. *
  16. * @SuppressWarnings(PHPMD.ExcessiveMethodLength)
  17. */
  18. public function testPayflowProVoid()
  19. {
  20. $objectManager = \Magento\TestFramework\Helper\Bootstrap::getObjectManager();
  21. /** @var $order \Magento\Sales\Model\Order */
  22. $order = $objectManager->create(\Magento\Sales\Model\Order::class);
  23. $order->loadByIncrementId('100000001');
  24. $payment = $order->getPayment();
  25. $gatewayMock = $this->createMock(\Magento\Paypal\Model\Payflow\Service\Gateway::class);
  26. $configMock = $this->createMock(\Magento\Paypal\Model\PayflowConfig::class);
  27. $configFactoryMock = $this->createPartialMock(
  28. \Magento\Payment\Model\Method\ConfigInterfaceFactory::class,
  29. ['create']
  30. );
  31. $configFactoryMock->expects($this->once())
  32. ->method('create')
  33. ->willReturn($configMock);
  34. $configMock->expects($this->any())
  35. ->method('getValue')
  36. ->willReturnMap(
  37. [
  38. ['use_proxy', false],
  39. ['sandbox_flag', '1'],
  40. ['transaction_url_test_mode', 'https://test_transaction_url']
  41. ]
  42. );
  43. /** @var \Magento\Paypal\Model\Payflowpro|\PHPUnit_Framework_MockObject_MockObject $instance */
  44. $instance = $this->getMockBuilder(\Magento\Paypal\Model\Payflowpro::class)
  45. ->setMethods(['setStore'])
  46. ->setConstructorArgs(
  47. [
  48. $objectManager->get(\Magento\Framework\Model\Context::class),
  49. $objectManager->get(\Magento\Framework\Registry::class),
  50. $objectManager->get(\Magento\Framework\Api\ExtensionAttributesFactory::class),
  51. $objectManager->get(\Magento\Framework\Api\AttributeValueFactory::class),
  52. $objectManager->get(\Magento\Payment\Helper\Data::class),
  53. $objectManager->get(\Magento\Framework\App\Config\ScopeConfigInterface::class),
  54. $objectManager->get(\Magento\Payment\Model\Method\Logger::class),
  55. $objectManager->get(\Magento\Framework\Module\ModuleListInterface::class),
  56. $objectManager->get(\Magento\Framework\Stdlib\DateTime\TimezoneInterface::class),
  57. $objectManager->get(\Magento\Store\Model\StoreManagerInterface::class),
  58. $configFactoryMock,
  59. $gatewayMock,
  60. $objectManager->get(\Magento\Paypal\Model\Payflow\Service\Response\Handler\HandlerInterface::class),
  61. null,
  62. null,
  63. []
  64. ]
  65. )
  66. ->getMock();
  67. $response = new \Magento\Framework\DataObject(
  68. [
  69. 'result' => '0',
  70. 'pnref' => 'V19A3D27B61E',
  71. 'respmsg' => 'Approved',
  72. 'authcode' => '510PNI',
  73. 'hostcode' => 'A',
  74. 'request_id' => 'f930d3dc6824c1f7230c5529dc37ae5e',
  75. 'result_code' => '0',
  76. ]
  77. );
  78. $gatewayMock->expects($this->once())
  79. ->method('postRequest')
  80. ->willReturn($response);
  81. $instance->expects($this->once())
  82. ->method('setStore')
  83. ->willReturnSelf();
  84. $payment->setMethodInstance($instance);
  85. $payment->void(new \Magento\Framework\DataObject());
  86. $order->save();
  87. $order = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->create(\Magento\Sales\Model\Order::class);
  88. $order->loadByIncrementId('100000001');
  89. $this->assertFalse($order->canVoidPayment());
  90. }
  91. }