PurchaseorderTest.php 2.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\OfflinePayments\Test\Unit\Model;
  7. use Magento\Framework\App\Config\ScopeConfigInterface;
  8. use Magento\Framework\DataObject;
  9. use Magento\Framework\Event\ManagerInterface as EventManagerInterface;
  10. use Magento\Framework\TestFramework\Unit\Helper\ObjectManager;
  11. use Magento\OfflinePayments\Model\Purchaseorder;
  12. use Magento\Payment\Helper\Data as PaymentHelper;
  13. use Magento\Payment\Model\Info as PaymentInfo;
  14. use Magento\Sales\Api\Data\OrderAddressInterface;
  15. use Magento\Sales\Api\Data\OrderInterface;
  16. use Magento\Sales\Model\Order\Payment;
  17. class PurchaseorderTest extends \PHPUnit\Framework\TestCase
  18. {
  19. /**
  20. * @var Purchaseorder
  21. */
  22. protected $_object;
  23. /**
  24. * @var \PHPUnit_Framework_MockObject_MockObject
  25. */
  26. protected $_scopeConfig;
  27. protected function setUp()
  28. {
  29. $objectManagerHelper = new ObjectManager($this);
  30. $eventManager = $this->createMock(EventManagerInterface::class);
  31. $paymentDataMock = $this->createMock(PaymentHelper::class);
  32. $this->_scopeConfig = $this->createPartialMock(
  33. ScopeConfigInterface::class,
  34. ['getValue', 'isSetFlag']
  35. );
  36. $this->_object = $objectManagerHelper->getObject(
  37. Purchaseorder::class,
  38. [
  39. 'eventManager' => $eventManager,
  40. 'paymentData' => $paymentDataMock,
  41. 'scopeConfig' => $this->_scopeConfig,
  42. ]
  43. );
  44. }
  45. public function testAssignData()
  46. {
  47. $data = new DataObject([
  48. 'po_number' => '12345'
  49. ]);
  50. $instance = $this->createMock(PaymentInfo::class);
  51. $this->_object->setData('info_instance', $instance);
  52. $result = $this->_object->assignData($data);
  53. $this->assertEquals($result, $this->_object);
  54. }
  55. /**
  56. * @expectedException \Magento\Framework\Exception\LocalizedException
  57. * @expectedExceptionMessage Purchase order number is a required field.
  58. */
  59. public function testValidate()
  60. {
  61. $data = new DataObject([]);
  62. $addressMock = $this->createMock(OrderAddressInterface::class);
  63. $addressMock->expects($this->once())->method('getCountryId')->willReturn('UY');
  64. $orderMock = $this->createMock(OrderInterface::class);
  65. $orderMock->expects($this->once())->method('getBillingAddress')->willReturn($addressMock);
  66. $instance = $this->createMock(Payment::class);
  67. $instance->expects($this->once())->method('getOrder')->willReturn($orderMock);
  68. $this->_object->setData('info_instance', $instance);
  69. $this->_object->assignData($data);
  70. $this->_object->validate();
  71. }
  72. }