Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
QtyProcessorTest.php
Go to the documentation of this file.
1 <?php
7 
8 use \Magento\CatalogInventory\Model\Quote\Item\QuantityValidator\Initializer\QtyProcessor;
9 
10 class QtyProcessorTest extends \PHPUnit\Framework\TestCase
11 {
15  protected $qtyProcessor;
16 
20  protected $quoteItemQtyList;
21 
25  protected $itemMock;
26 
27  protected function setUp()
28  {
29  $this->quoteItemQtyList = $this->getMockBuilder(
30  \Magento\CatalogInventory\Model\Quote\Item\QuantityValidator\QuoteItemQtyList::class
31  )
32  ->disableOriginalConstructor()
33  ->getMock();
34  $this->qtyProcessor = new QtyProcessor($this->quoteItemQtyList);
35  $this->itemMock = $this->getMockBuilder(\Magento\Quote\Model\Quote\Item::class)
36  ->disableOriginalConstructor()
37  ->setMethods(['getParentItem', 'getProduct', '__wakeup'])
38  ->getMock();
39  }
40 
41  public function testSetItem()
42  {
43  $itemMock = $this->getMockBuilder(\Magento\Quote\Model\Quote\Item::class)
44  ->disableOriginalConstructor()
45  ->getMock();
46 
47  $this->assertInstanceOf(
48  \Magento\CatalogInventory\Model\Quote\Item\QuantityValidator\Initializer\QtyProcessor::class,
49  $this->qtyProcessor->setItem($itemMock)
50  );
51  }
52 
53  public function testGetRowQty()
54  {
55  $qty = 1;
56 
57  $itemMock = $this->getMockBuilder(\Magento\Quote\Model\Quote\Item::class)
58  ->disableOriginalConstructor()
59  ->getMock();
60  $parentItemMock = $this->getMockBuilder(\Magento\Quote\Model\Quote\Item::class)
61  ->disableOriginalConstructor()
62  ->getMock();
63  $itemMock->expects($this->any())
64  ->method('getParentItem')
65  ->willReturn($parentItemMock);
66  $parentItemMock->expects($this->once())
67  ->method('getQty')
68  ->willReturn($qty);
69 
70  $this->qtyProcessor->setItem($itemMock);
71  $this->assertEquals($qty, $this->qtyProcessor->getRowQty($qty));
72  }
73 
77  {
78  $qty = 1;
79  $productId = 1;
80 
81  $productMock = $this->getMockBuilder(\Magento\Catalog\Model\Product::class)
82  ->disableOriginalConstructor()
83  ->setMethods(['getId', '__wakeup'])
84  ->getMock();
85  $productMock->expects($this->once())
86  ->method('getId')
87  ->willReturn($productId);
88  $itemMock = $this->getMockBuilder(\Magento\Quote\Model\Quote\Item::class)
89  ->disableOriginalConstructor()
90  ->getMock();
91  $itemMock->expects($this->any())
92  ->method('getProduct')
93  ->willReturn($productMock);
94  $this->quoteItemQtyList->expects($this->once())
95  ->method('getQty')
96  ->withAnyParameters()
97  ->willReturn($qty);
98 
99  $this->qtyProcessor->setItem($itemMock);
100  $this->assertEquals($qty, $this->qtyProcessor->getQtyForCheck($qty));
101  }
102 
103  public function testGetQtyForCheck()
104  {
105  $qty = 1;
106  $productId = 1;
107 
108  $productMock = $this->getMockBuilder(\Magento\Catalog\Model\Product::class)
109  ->disableOriginalConstructor()
110  ->setMethods(['getId', '__wakeup'])
111  ->getMock();
112  $productMock->expects($this->once())
113  ->method('getId')
114  ->willReturn($productId);
115  $parentItemMock = $this->getMockBuilder(\Magento\Quote\Model\Quote\Item::class)
116  ->disableOriginalConstructor()
117  ->getMock();
118  $this->itemMock->expects($this->any())
119  ->method('getParentItem')
120  ->willReturn($parentItemMock);
121  $this->itemMock->expects($this->any())
122  ->method('getProduct')
123  ->willReturn($productMock);
124  $this->quoteItemQtyList->expects($this->once())
125  ->method('getQty')
126  ->withAnyParameters()
127  ->willReturn($qty);
128 
129  $this->qtyProcessor->setItem($this->itemMock);
130  $this->assertEquals($qty, $this->qtyProcessor->getQtyForCheck($qty));
131  }
132 }