/** * @param array $productConfig * @param array $stockConfig * @param float $expectedQty * @dataProvider getStockQtyDataProvider */ public function testGetStockQty($productConfig, $stockConfig, $expectedQty) { $productId = $productConfig['product_id']; $isComposite = $productConfig['is_composite']; $qty = $productConfig['qty']; $useConfigManageStock = $stockConfig['use_config_manage_stock']; $manageStock = $stockConfig['manage_stock']; $isInStock = $productConfig['is_in_stock']; $isSaleable = $productConfig['is_saleable']; $this->setDataArrayValue('product_id', $productId); $this->product->expects($this->once())->method('load')->with($this->equalTo($productId), $this->equalTo(null))->will($this->returnSelf()); $this->product->expects($this->once())->method('isComposite')->will($this->returnValue($isComposite)); $this->setDataArrayValue('qty', $qty); $this->setDataArrayValue('is_in_stock', $isInStock); if ($qty > 0 || $manageStock || $isInStock) { $this->product->expects($this->any())->method('isSaleable')->will($this->returnValue($isSaleable)); } if ($isComposite) { $this->prepareNotCompositeProductMock(); } $this->initManageStock($useConfigManageStock, $manageStock); $this->assertSame($expectedQty, $this->item->getStockQty()); }