/** * @param int $productId * @param string $unitCode * @param int $quantity * @param float $value * @param string $currency * @return ProductPrice */ protected function createPrice($productId, $unitCode, $quantity, $value, $currency) { $productPrice = new ProductPrice(); $price = new Price(); $price->setCurrency($currency); $price->setValue($value); $product = new Product(); $idReflection = new \ReflectionProperty(get_class($product), 'id'); $idReflection->setAccessible(true); $idReflection->setValue($product, $productId); $unit = new ProductUnit(); $unit->setCode($unitCode); $productPrice->setProduct($product); $productPrice->setUnit($unit); $productPrice->setQuantity($quantity); $productPrice->setPrice($price); return $productPrice; }
public function testGetAvailableCurrencies() { $this->assertEquals(['EUR' => 'EUR', 'USD' => 'USD'], $this->repository->getAvailableCurrencies()); $em = $this->getContainer()->get('doctrine')->getManager(); $price = new Price(); $price->setValue(1); $price->setCurrency('UAH'); /** @var Product $product */ $product = $this->getReference('product.1'); /** @var ProductUnit $unit */ $unit = $this->getReference('product_unit.liter'); /** @var PriceList $priceList */ $priceList = $this->getReference('price_list_1'); $productPrice = new ProductPrice(); $productPrice->setPrice($price)->setProduct($product)->setQuantity(1)->setUnit($unit)->setPriceList($priceList); $em->persist($productPrice); $em->flush(); $this->assertEquals(['EUR' => 'EUR', 'UAH' => 'UAH', 'USD' => 'USD'], $this->repository->getAvailableCurrencies()); }