/** * @param int $productStockQty * @param int|null $productId * @param int|null $dataQty * @param int $expectedQty * @dataProvider getStockQtyDataProvider */ public function testGetStockQty($productStockQty, $productId, $dataQty, $expectedQty) { $this->assertNull($this->block->getData('product_stock_qty')); if ($dataQty) { $this->setDataArrayValue('product_stock_qty', $dataQty); } else { $product = $this->getMock('Magento\\Catalog\\Model\\Product', ['getId', '__wakeup'], [], '', false); $product->expects($this->any())->method('getId')->will($this->returnValue($productId)); $this->registryMock->expects($this->any())->method('registry')->with('current_product')->will($this->returnValue($product)); if ($productId) { $this->stockItemService->expects($this->once())->method('getStockQty')->with($this->equalTo($productId))->will($this->returnValue($productStockQty)); } } $this->assertSame($expectedQty, $this->block->getStockQty()); $this->assertSame($expectedQty, $this->block->getData('product_stock_qty')); }
/** * @param int $productStockQty * @param int|null $productId * @param int|null $websiteId * @param int|null $dataQty * @param int $expectedQty * @dataProvider getStockQtyDataProvider */ public function testGetStockQty($productStockQty, $productId, $websiteId, $dataQty, $expectedQty) { $this->assertNull($this->block->getData('product_stock_qty')); if ($dataQty) { $this->setDataArrayValue('product_stock_qty', $dataQty); } else { $product = $this->getMock('Magento\\Catalog\\Model\\Product', ['getId', 'getStore', '__wakeup'], [], '', false); $product->expects($this->any())->method('getId')->will($this->returnValue($productId)); $store = $this->getMock('Magento\\Store\\Model\\Store', ['getWebsiteId', '__wakeup'], [], '', false); $store->expects($this->any())->method('getWebsiteId')->willReturn($websiteId); $product->expects($this->any())->method('getStore')->will($this->returnValue($store)); $this->registryMock->expects($this->any())->method('registry')->with('current_product')->will($this->returnValue($product)); if ($productId) { $stockStatus = $this->getMockBuilder(\Magento\CatalogInventory\Api\Data\StockStatusInterface::class)->getMockForAbstractClass(); $stockStatus->expects($this->any())->method('getQty')->willReturn($productStockQty); $this->stockRegistryMock->expects($this->once())->method('getStockStatus')->with($this->equalTo($productId), $this->equalTo($websiteId))->will($this->returnValue($stockStatus)); } } $this->assertSame($expectedQty, $this->block->getStockQty()); $this->assertSame($expectedQty, $this->block->getData('product_stock_qty')); }