HtmlTransactionIdObserverTest.php 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\Paypal\Test\Unit\Observer;
  7. /**
  8. * Class HtmlTransactionIdObserverTest
  9. */
  10. class HtmlTransactionIdObserverTest extends \PHPUnit\Framework\TestCase
  11. {
  12. /**
  13. * @var \Magento\Paypal\Observer\HtmlTransactionIdObserver
  14. */
  15. protected $_model;
  16. /**
  17. * @var \Magento\Framework\Event\Observer
  18. */
  19. protected $_observer;
  20. /**
  21. * @var \Magento\Framework\DataObject
  22. */
  23. protected $_event;
  24. /**
  25. * @var \Magento\Paypal\Helper\Data|\PHPUnit_Framework_MockObject_MockObject
  26. */
  27. protected $paypalDataMock;
  28. protected function setUp()
  29. {
  30. $this->_event = new \Magento\Framework\DataObject();
  31. $this->_observer = new \Magento\Framework\Event\Observer();
  32. $this->_observer->setEvent($this->_event);
  33. $this->paypalDataMock = $this->createPartialMock(\Magento\Paypal\Helper\Data::class, ['getHtmlTransactionId']);
  34. $objectManagerHelper = new \Magento\Framework\TestFramework\Unit\Helper\ObjectManager($this);
  35. $this->_model = $objectManagerHelper->getObject(
  36. \Magento\Paypal\Observer\HtmlTransactionIdObserver::class,
  37. [
  38. 'paypalData' => $this->paypalDataMock,
  39. ]
  40. );
  41. }
  42. public function testObserveHtmlTransactionId()
  43. {
  44. $observerMock = $this->getMockBuilder(\Magento\Framework\Event\Observer::class)
  45. ->setMethods(['getDataObject'])
  46. ->disableOriginalConstructor()
  47. ->getMock();
  48. $transactionMock = $this->getMockBuilder(\Magento\Sales\Model\Order\Payment\Transaction::class)
  49. ->setMethods(['getOrder', 'getTxnId', 'setData'])
  50. ->disableOriginalConstructor()
  51. ->getMock();
  52. $orderMock = $this->getMockBuilder(\Magento\Sales\Model\Order::class)
  53. ->setMethods(['getPayment'])
  54. ->disableOriginalConstructor()
  55. ->getMock();
  56. $paymentMock = $this->getMockBuilder(\Magento\Sales\Model\Order\Payment::class)
  57. ->setMethods(['getMethodInstance'])
  58. ->disableOriginalConstructor()
  59. ->getMock();
  60. $methodInstanceMock = $this->getMockBuilder(\Magento\Payment\Model\MethodInterface::class)
  61. ->setMethods(['getCode'])
  62. ->getMockForAbstractClass();
  63. $observerMock->expects($this->once())
  64. ->method('getDataObject')
  65. ->willReturn($transactionMock);
  66. $transactionMock->expects($this->once())
  67. ->method('getOrder')
  68. ->willReturn($orderMock);
  69. $orderMock->expects($this->once())
  70. ->method('getPayment')
  71. ->willReturn($paymentMock);
  72. $paymentMock->expects($this->once())
  73. ->method('getMethodInstance')
  74. ->willReturn($methodInstanceMock);
  75. $methodInstanceMock->expects($this->once())
  76. ->method('getCode')
  77. ->willReturn("'test'");
  78. $transactionMock->expects($this->once())
  79. ->method('getTxnId')
  80. ->willReturn("'test'");
  81. $this->paypalDataMock->expects($this->once())
  82. ->method('getHtmlTransactionId')
  83. ->willReturn('test');
  84. $transactionMock->expects($this->once())
  85. ->method('setData')->with('html_txn_id', 'test');
  86. $this->_model->execute($observerMock);
  87. }
  88. }