/** * test importFromAmazonResult * * @param mixed $result * @param bool $expectedResult * @param string $expectedSku * @param integer $expectedInStockQuantity * @param integer $expectedTotalQuantity * * @dataProvider dataImportFromAmazonResult */ public function testImportFromAmazonResult($result, $expectedResult, $expectedSku = null, $expectedInStockQuantity = null, $expectedTotalQuantity = null) { $this->assertEquals($expectedResult, $this->productSupply->importFromAmazonResult($result)); if ($expectedResult) { $this->assertEquals($expectedSku, $this->productSupply->getSku()); $this->assertEquals($expectedInStockQuantity, $this->productSupply->getInStockQuantity()); $this->assertEquals($expectedTotalQuantity, $this->productSupply->getTotalQuantity()); } }
private function extractProductsFromInventoryList($inventoryList, $minimumInStockQuantity) { $xpath = new \DOMXpath($inventoryList); $xpath->registerNamespace('mws', 'http://mws.amazonaws.com/FulfillmentInventory/2010-10-01/'); $products = $xpath->query('//mws:InventorySupplyList/mws:member'); foreach ($products as $product) { /* @var \DOMElement $product */ $inStockQuantity = (int) $product->getElementsByTagName('InStockSupplyQuantity')->item(0)->nodeValue; if ($inStockQuantity >= $minimumInStockQuantity) { $productSupply = new ProductSupply(); $productSupply->importFromAmazonResult($product); $this->productSupplyList[] = $productSupply; } } $nextToken = $xpath->query('//mws:NextToken')->item(0); return $nextToken ? $nextToken->nodeValue : null; }