CancelDetailsHandlerTest.php 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. declare(strict_types=1);
  7. namespace Magento\Braintree\Test\Unit\Gateway\Response;
  8. use Magento\Braintree\Gateway\Response\CancelDetailsHandler;
  9. use Magento\Braintree\Gateway\SubjectReader;
  10. use Magento\Payment\Gateway\Data\OrderAdapterInterface;
  11. use Magento\Payment\Gateway\Data\PaymentDataObject;
  12. use Magento\Sales\Model\Order\Payment;
  13. use PHPUnit\Framework\TestCase;
  14. use PHPUnit_Framework_MockObject_MockObject as MockObject;
  15. /**
  16. * Tests \Magento\Braintree\Gateway\Response\CancelDetailsHandler.
  17. */
  18. class CancelDetailsHandlerTest extends TestCase
  19. {
  20. /**
  21. * @var CancelDetailsHandler
  22. */
  23. private $handler;
  24. /**
  25. * @inheritdoc
  26. */
  27. protected function setUp()
  28. {
  29. $this->handler = new CancelDetailsHandler(new SubjectReader());
  30. }
  31. /**
  32. * Checks a case when cancel handler closes the current and parent transactions.
  33. *
  34. * @return void
  35. */
  36. public function testHandle(): void
  37. {
  38. /** @var OrderAdapterInterface|MockObject $order */
  39. $order = $this->getMockForAbstractClass(OrderAdapterInterface::class);
  40. /** @var Payment|MockObject $payment */
  41. $payment = $this->getMockBuilder(Payment::class)
  42. ->disableOriginalConstructor()
  43. ->setMethods(['setOrder'])
  44. ->getMock();
  45. $paymentDO = new PaymentDataObject($order, $payment);
  46. $response = [
  47. 'payment' => $paymentDO,
  48. ];
  49. $this->handler->handle($response, []);
  50. self::assertTrue($payment->getIsTransactionClosed(), 'The current transaction should be closed.');
  51. self::assertTrue($payment->getShouldCloseParentTransaction(), 'The parent transaction should be closed.');
  52. }
  53. }