/** * @return ProductPrice */ public function getProductPrice() { $priceList = new PriceList(); $priceList->setCurrencies(['USD', 'EUR']); $productPrice = new ProductPrice(); $productPrice->setPriceList($priceList); return $productPrice; }
/** * @return array */ public function submitProvider() { $priceList = new PriceList(); $priceList->setCurrencies(['GBP']); /** @var Product $expectedProduct */ $expectedProduct = $this->getProductEntityWithPrecision(2, 'kg', 3); $expectedPrice1 = (new Price())->setValue(42)->setCurrency('USD'); $expectedPrice2 = (new Price())->setValue(42)->setCurrency('GBP'); $expectedProductPrice = new ProductPrice(); $expectedProductPrice->setProduct($expectedProduct)->setQuantity(123)->setUnit($expectedProduct->getUnitPrecision('kg')->getUnit())->setPrice($expectedPrice1)->setPriceList($priceList); $expectedProductPrice2 = clone $expectedProductPrice; $expectedProductPrice2->setQuantity(123.556)->setPrice($expectedPrice2); $defaultProductPrice = new ProductPrice(); $defaultProductPrice->setPriceList($priceList); return ['product price without data' => ['defaultData' => $defaultProductPrice, 'submittedData' => [], 'expectedData' => clone $defaultProductPrice, 'rounding' => false], 'product price with data' => ['defaultData' => clone $defaultProductPrice, 'submittedData' => ['product' => 2, 'quantity' => 123, 'unit' => 'kg', 'price' => ['value' => 42, 'currency' => 'USD']], 'expectedData' => $expectedProductPrice, 'rounding' => true], 'product price with data for rounding' => ['defaultData' => clone $defaultProductPrice, 'submittedData' => ['product' => 2, 'quantity' => 123.5555, 'unit' => 'kg', 'price' => ['value' => 42, 'currency' => 'GBP']], 'expectedData' => $expectedProductPrice2, 'rounding' => true]]; }