Example #1
0
 public function testStringToMoney()
 {
     $moneys = array(array("1 USD", 1, "USD", "1.00 USD"), array("1 EUR", 1, "EUR", "1.00 EUR"), array("+1 EUR", 1, "EUR", "1.00 EUR"), array("-1 EUR", -1, "EUR", "-1.00 EUR"), array("100 EUR", 100, "EUR", "100.00 EUR"), array("100.0 EUR", 100, "EUR", "100.00 EUR"), array("100,0 EUR", 100, "EUR", "100.00 EUR"), array("100.00 EUR", 100, "EUR", "100.00 EUR"), array("100,00 EUR", 100, "EUR", "100.00 EUR"), array("100.00001 EUR", 100, "EUR", "100.00 EUR"), array("100,00001 EUR", 100, "EUR", "100.00 EUR"), array("9999.99 EUR", 9999.99, "EUR", "9999.99 EUR"), array("0.01 EUR", 0.01, "EUR", "0.01 EUR"), array("0.00000000001 EUR", 0, "EUR", "0.00 EUR"), array("-0.00000000001 EUR", 0, "EUR", "0.00 EUR"));
     foreach ($moneys as $value) {
         list($string, $amount, $currency, $print) = $value;
         $money = new Money($string);
         $this->assertEquals($amount, $money->getAmount());
         $this->assertEquals($currency, $money->getCurrency()->getCode());
         $newString = $money->__toString($string);
         $this->assertSame($print, $newString);
         $newMoney = new Money($newString);
         $this->assertEquals($amount, $newMoney->getAmount());
         $this->assertEquals($currency, $newMoney->getCurrency()->getCode());
     }
 }
Example #2
0
 /**
  * Checks the Money are equal to other.
  *
  * @param Money $other
  *
  * @return boolean Return TRUE if the Currency and the amount are same.
  */
 public function isEqualTo(Money $other)
 {
     return $this->currency->isEqualTo($other->getCurrency()) && $other->getAmount() == $this->amount;
 }