OrderRegistrarTest.php 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\Sales\Test\Unit\Model\Order\Shipment;
  7. class OrderRegistrarTest extends \PHPUnit\Framework\TestCase
  8. {
  9. /**
  10. * @var \Magento\Sales\Model\Order\Shipment\OrderRegistrar
  11. */
  12. private $model;
  13. /**
  14. * @var \Magento\Sales\Api\Data\OrderInterface|\PHPUnit_Framework_MockObject_MockObject
  15. */
  16. private $orderMock;
  17. /**
  18. * @var \Magento\Sales\Api\Data\ShipmentInterface|\PHPUnit_Framework_MockObject_MockObject
  19. */
  20. private $shipmentMock;
  21. protected function setUp()
  22. {
  23. $this->orderMock = $this->getMockBuilder(\Magento\Sales\Api\Data\OrderInterface::class)
  24. ->disableOriginalConstructor()
  25. ->getMockForAbstractClass();
  26. $this->shipmentMock = $this->getMockBuilder(\Magento\Sales\Api\Data\ShipmentInterface::class)
  27. ->disableOriginalConstructor()
  28. ->getMockForAbstractClass();
  29. $this->model = new \Magento\Sales\Model\Order\Shipment\OrderRegistrar();
  30. }
  31. public function testRegister()
  32. {
  33. $item1 = $this->getShipmentItemMock();
  34. $item1->expects($this->once())->method('getQty')->willReturn(0);
  35. $item1->expects($this->never())->method('register');
  36. $item1->expects($this->never())->method('getOrderItem');
  37. $item2 = $this->getShipmentItemMock();
  38. $item2->expects($this->atLeastOnce())->method('getQty')->willReturn(0.5);
  39. $item2->expects($this->once())->method('register');
  40. $orderItemMock = $this->createMock(\Magento\Sales\Model\Order\Item::class);
  41. $orderItemMock->expects($this->once())->method('isDummy')->with(true)->willReturn(false);
  42. $item2->expects($this->once())->method('getOrderItem')->willReturn($orderItemMock);
  43. $items = [$item1, $item2];
  44. $this->shipmentMock->expects($this->once())->method('getItems')->willReturn($items);
  45. $this->assertEquals(
  46. $this->orderMock,
  47. $this->model->register($this->orderMock, $this->shipmentMock)
  48. );
  49. }
  50. /**
  51. * @return \PHPUnit_Framework_MockObject_MockObject
  52. */
  53. private function getShipmentItemMock()
  54. {
  55. return $this->getMockBuilder(\Magento\Sales\Api\Data\ShipmentItemInterface::class)
  56. ->disableOriginalConstructor()
  57. ->setMethods(['register', 'getOrderItem'])
  58. ->getMockForAbstractClass();
  59. }
  60. }