/**
  * @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());
 }