DataAssignObserverTest.php 2.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  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\AuthorizenetAcceptjs\Test\Unit\Observer;
  8. use Magento\Framework\DataObject;
  9. use Magento\Framework\Event;
  10. use Magento\Framework\Event\Observer;
  11. use Magento\Payment\Model\InfoInterface;
  12. use Magento\Payment\Observer\AbstractDataAssignObserver;
  13. use Magento\AuthorizenetAcceptjs\Observer\DataAssignObserver;
  14. use Magento\Quote\Api\Data\PaymentInterface;
  15. use PHPUnit\Framework\TestCase;
  16. class DataAssignObserverTest extends TestCase
  17. {
  18. public function testExecuteSetsProperData()
  19. {
  20. $additionalInfo = [
  21. 'opaqueDataDescriptor' => 'foo',
  22. 'opaqueDataValue' => 'bar',
  23. 'ccLast4' => '1234'
  24. ];
  25. $observerContainer = $this->createMock(Observer::class);
  26. $event = $this->createMock(Event::class);
  27. $paymentInfoModel = $this->createMock(InfoInterface::class);
  28. $dataObject = new DataObject([
  29. PaymentInterface::KEY_ADDITIONAL_DATA => $additionalInfo
  30. ]);
  31. $observerContainer->method('getEvent')
  32. ->willReturn($event);
  33. $event->method('getDataByKey')
  34. ->willReturnMap(
  35. [
  36. [AbstractDataAssignObserver::MODEL_CODE, $paymentInfoModel],
  37. [AbstractDataAssignObserver::DATA_CODE, $dataObject]
  38. ]
  39. );
  40. $paymentInfoModel->expects($this->at(0))
  41. ->method('setAdditionalInformation')
  42. ->with('opaqueDataDescriptor', 'foo');
  43. $paymentInfoModel->expects($this->at(1))
  44. ->method('setAdditionalInformation')
  45. ->with('opaqueDataValue', 'bar');
  46. $paymentInfoModel->expects($this->at(2))
  47. ->method('setAdditionalInformation')
  48. ->with('ccLast4', '1234');
  49. $observer = new DataAssignObserver();
  50. $observer->execute($observerContainer);
  51. }
  52. public function testDoestSetDataWhenEmpty()
  53. {
  54. $observerContainer = $this->createMock(Observer::class);
  55. $event = $this->createMock(Event::class);
  56. $paymentInfoModel = $this->createMock(InfoInterface::class);
  57. $observerContainer->method('getEvent')
  58. ->willReturn($event);
  59. $event->method('getDataByKey')
  60. ->willReturnMap(
  61. [
  62. [AbstractDataAssignObserver::MODEL_CODE, $paymentInfoModel],
  63. [AbstractDataAssignObserver::DATA_CODE, new DataObject()]
  64. ]
  65. );
  66. $paymentInfoModel->expects($this->never())
  67. ->method('setAdditionalInformation');
  68. $observer = new DataAssignObserver();
  69. $observer->execute($observerContainer);
  70. }
  71. }