public function testFormatShort()
 {
     $value = 42;
     $unit = (new ProductUnit())->setCode('kg');
     $expectedResult = '42 kg';
     $this->formatter->expects($this->once())->method('formatShort')->with($value, $unit)->willReturn($expectedResult);
     $this->assertEquals($expectedResult, $this->extension->formatShort($value, $unit));
 }
 /**
  * @param BaseQuoteProductItem $item
  * @param string $default
  * @return string
  */
 protected function formatProductUnit(BaseQuoteProductItem $item, $default = '')
 {
     if (!$item->getProductUnit()) {
         return sprintf('%s %s', $item->getQuantity(), $item->getProductUnitCode());
     } elseif ($item->getQuantity()) {
         return $this->productUnitValueFormatter->format($item->getQuantity(), $item->getProductUnit());
     }
     return $default;
 }
 /**
  * @param array $inputData
  * @param array $expectedData
  *
  * @dataProvider formatOfferProvider
  */
 public function testFormatOffer(array $inputData, array $expectedData)
 {
     /* @var $item QuoteProductOffer */
     $item = $inputData['item'];
     $item->setQuantity($inputData['quantity'])->setProductUnit($inputData['unit'])->setProductUnitCode($inputData['unitCode'])->setPrice($inputData['price']);
     $this->productUnitValueFormatter->expects($inputData['unit'] ? $this->once() : $this->never())->method('format')->with($inputData['quantity'], $inputData['unitCode'])->will($this->returnValue($expectedData['formattedUnits']));
     $price = $inputData['price'] ?: new Price();
     $this->numberFormatter->expects($price ? $this->once() : $this->never())->method('formatCurrency')->with($price->getValue(), $price->getCurrency())->will($this->returnValue($expectedData['formattedPrice']));
     $this->productUnitLabelFormatter->expects($this->once())->method('format')->with($inputData['unitCode'])->will($this->returnValue($expectedData['formattedUnit']));
     $this->translator->expects($this->once())->method('transChoice')->with($expectedData['transConstant'], $expectedData['transIndex'], ['{units}' => $expectedData['formattedUnits'], '{price}' => $expectedData['formattedPrice'], '{unit}' => $expectedData['formattedUnit']]);
     $this->formatter->formatOffer($inputData['item']);
 }
 /**
  * @expectedException \InvalidArgumentException
  * @expectedExceptionMessage The parameter "value" must be a numeric, but it is of type string.
  */
 public function testFormatWithInvalidValue()
 {
     $this->formatter->formatShort('test', (new ProductUnit())->setCode('item'));
 }
 /**
  * @param float|integer $value
  * @param ProductUnit $unit
  * @return string
  */
 public function formatShort($value, ProductUnit $unit)
 {
     return $this->formatter->formatShort($value, $unit);
 }