Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
OrderRegistrarTest.php
Go to the documentation of this file.
1 <?php
7 
8 class OrderRegistrarTest extends \PHPUnit\Framework\TestCase
9 {
13  private $model;
14 
18  private $orderMock;
19 
23  private $shipmentMock;
24 
25  protected function setUp()
26  {
27  $this->orderMock = $this->getMockBuilder(\Magento\Sales\Api\Data\OrderInterface::class)
28  ->disableOriginalConstructor()
29  ->getMockForAbstractClass();
30  $this->shipmentMock = $this->getMockBuilder(\Magento\Sales\Api\Data\ShipmentInterface::class)
31  ->disableOriginalConstructor()
32  ->getMockForAbstractClass();
33 
34  $this->model = new \Magento\Sales\Model\Order\Shipment\OrderRegistrar();
35  }
36 
37  public function testRegister()
38  {
39  $item1 = $this->getShipmentItemMock();
40  $item1->expects($this->once())->method('getQty')->willReturn(0);
41  $item1->expects($this->never())->method('register');
42  $item1->expects($this->never())->method('getOrderItem');
43 
44  $item2 = $this->getShipmentItemMock();
45  $item2->expects($this->atLeastOnce())->method('getQty')->willReturn(0.5);
46  $item2->expects($this->once())->method('register');
47 
48  $orderItemMock = $this->createMock(\Magento\Sales\Model\Order\Item::class);
49  $orderItemMock->expects($this->once())->method('isDummy')->with(true)->willReturn(false);
50  $item2->expects($this->once())->method('getOrderItem')->willReturn($orderItemMock);
51 
52  $items = [$item1, $item2];
53  $this->shipmentMock->expects($this->once())->method('getItems')->willReturn($items);
54  $this->assertEquals(
55  $this->orderMock,
56  $this->model->register($this->orderMock, $this->shipmentMock)
57  );
58  }
59 
63  private function getShipmentItemMock()
64  {
65  return $this->getMockBuilder(\Magento\Sales\Api\Data\ShipmentItemInterface::class)
66  ->disableOriginalConstructor()
67  ->setMethods(['register', 'getOrderItem'])
68  ->getMockForAbstractClass();
69  }
70 }
$items