public function convert(Number $number) { $rateFactor = $this->retrieveRateFactor(); if ($this->to === 'EUR') { return $number->multiply($rateFactor); } else { return $this->convertToOther($rateFactor, $number); } }
/** * @param \Thelia\Math\Number $rateFactor * @param \Thelia\Math\Number $number * @return \Thelia\Math\Number * @throws \Thelia\CurrencyConverter\Exception\CurrencyNotFoundException if the `to` currency is not support */ private function convertToOther(Number $rateFactor, Number $number) { $conversion = false; foreach ($this->data->Cube as $last) { $code = strtoupper($last["currency"]); if ($code === $this->to) { $rate = $rateFactor->multiply((string) $last['rate']); $conversion = $number->multiply($rate); } } if ($conversion === false) { throw new CurrencyNotFoundException($this->to); } return $conversion; }
/** * @param \Thelia\Math\Number $rateFactor * @param \Thelia\Math\Number $number * @return \Thelia\Math\Number * @throws \Thelia\CurrencyConverter\Exception\CurrencyNotFoundException if the `to` currency is not support */ private function convertToOther(Number $rateFactor, Number $number) { $rateStr = $this->getRateFromFeed($this->to); $rate = $rateFactor->multiply($rateStr); return $number->multiply($rate); }
public function testMult() { $numberA = new Number('1'); $numberB = $numberA->multiply('1.2393'); $this->assertEquals(1.2393, $numberB->getNumber(-1)); }