DataAssignObserverTest.php 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\Braintree\Test\Unit\Observer;
  7. use Magento\Framework\DataObject;
  8. use Magento\Framework\Event;
  9. use Magento\Payment\Model\InfoInterface;
  10. use Magento\Payment\Observer\AbstractDataAssignObserver;
  11. use Magento\Braintree\Observer\DataAssignObserver;
  12. use Magento\Quote\Api\Data\PaymentInterface;
  13. /**
  14. * Class DataAssignObserverTest
  15. */
  16. class DataAssignObserverTest extends \PHPUnit\Framework\TestCase
  17. {
  18. const PAYMENT_METHOD_NONCE = 'nonce';
  19. const DEVICE_DATA = '{"test": "test"}';
  20. public function testExecute()
  21. {
  22. $observerContainer = $this->getMockBuilder(Event\Observer::class)
  23. ->disableOriginalConstructor()
  24. ->getMock();
  25. $event = $this->getMockBuilder(Event::class)
  26. ->disableOriginalConstructor()
  27. ->getMock();
  28. $paymentInfoModel = $this->createMock(InfoInterface::class);
  29. $dataObject = new DataObject(
  30. [
  31. PaymentInterface::KEY_ADDITIONAL_DATA => [
  32. 'payment_method_nonce' => self::PAYMENT_METHOD_NONCE,
  33. 'device_data' => self::DEVICE_DATA
  34. ]
  35. ]
  36. );
  37. $observerContainer->expects(static::atLeastOnce())
  38. ->method('getEvent')
  39. ->willReturn($event);
  40. $event->expects(static::exactly(2))
  41. ->method('getDataByKey')
  42. ->willReturnMap(
  43. [
  44. [AbstractDataAssignObserver::MODEL_CODE, $paymentInfoModel],
  45. [AbstractDataAssignObserver::DATA_CODE, $dataObject]
  46. ]
  47. );
  48. $paymentInfoModel->expects(static::at(0))
  49. ->method('setAdditionalInformation')
  50. ->with('payment_method_nonce', self::PAYMENT_METHOD_NONCE);
  51. $paymentInfoModel->expects(static::at(1))
  52. ->method('setAdditionalInformation')
  53. ->with('device_data', self::DEVICE_DATA);
  54. $observer = new DataAssignObserver();
  55. $observer->execute($observerContainer);
  56. }
  57. }