VoidHandlerTest.php 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\Braintree\Test\Unit\Gateway\Response;
  7. use Magento\Braintree\Gateway\SubjectReader;
  8. use Magento\Braintree\Gateway\Response\VoidHandler;
  9. use Magento\Payment\Gateway\Data\PaymentDataObjectInterface;
  10. use Magento\Sales\Model\Order\Payment;
  11. class VoidHandlerTest extends \PHPUnit\Framework\TestCase
  12. {
  13. public function testHandle()
  14. {
  15. $paymentDO = $this->createMock(PaymentDataObjectInterface::class);
  16. $paymentInfo = $this->getMockBuilder(Payment::class)
  17. ->disableOriginalConstructor()
  18. ->getMock();
  19. $handlingSubject = [
  20. 'payment' => $paymentDO
  21. ];
  22. $transaction = \Braintree\Transaction::factory(['id' => 1]);
  23. $response = [
  24. 'object' => new \Braintree\Result\Successful($transaction, 'transaction')
  25. ];
  26. $subjectReader = $this->getMockBuilder(SubjectReader::class)
  27. ->disableOriginalConstructor()
  28. ->getMock();
  29. $subjectReader->expects(static::once())
  30. ->method('readPayment')
  31. ->with($handlingSubject)
  32. ->willReturn($paymentDO);
  33. $paymentDO->expects(static::atLeastOnce())
  34. ->method('getPayment')
  35. ->willReturn($paymentInfo);
  36. $subjectReader->expects(static::once())
  37. ->method('readTransaction')
  38. ->with($response)
  39. ->willReturn($transaction);
  40. $paymentInfo->expects(static::never())
  41. ->method('setTransactionId');
  42. $paymentInfo->expects(static::once())
  43. ->method('setIsTransactionClosed')
  44. ->with(true);
  45. $paymentInfo->expects(static::once())
  46. ->method('setShouldCloseParentTransaction')
  47. ->with(true);
  48. $handler = new VoidHandler($subjectReader);
  49. $handler->handle($handlingSubject, $response);
  50. }
  51. }