/* * Rapid Beans Framework: LengthTest.java * * Copyright Martin Bluemel, 2008 * * Nov 14, 2005 */ package org.rapidbeans.domain.finance; import java.math.BigDecimal; import junit.framework.TestCase; import org.rapidbeans.core.type.TypeRapidQuantity; import org.rapidbeans.core.type.TypeRapidQuantityConversionTable; /** * Unit tests for class Length. * * @author Martin Bluemel */ public final class MoneyTest extends TestCase { /** * test constructor with string. */ public void testMoneyString() { Money money = new Money("11 euro"); assertSame(TypeRapidQuantity.forName("org.rapidbeans.domain.finance.Money"), money.getType()); assertSame(Money.class, money.getType().getImplementingClass()); assertEquals(new BigDecimal("11"), money.getMagnitude()); assertSame(Currency.euro, money.getUnit()); } /** * test constructor with decimal and unit. */ public void testMoneyMagUnit() { Money mon = new Money(new BigDecimal("100.00"), Currency.euro); assertSame(TypeRapidQuantity.forName("org.rapidbeans.domain.finance.Money"), mon.getType()); assertSame(Money.class, mon.getType().getImplementingClass()); assertEquals(new BigDecimal("100.00"), mon.getMagnitude()); assertSame(Currency.euro, mon.getUnit()); } /** * test conversion. */ public void testMoneyConvert() { Money mon = new Money(new BigDecimal("1000.00000"), Currency.euro); TypeRapidQuantity type = mon.getType(); TypeRapidQuantityConversionTable table = type.getConversionTable(); table.setConversionFactor(Currency.euro, Currency.dollar, new BigDecimal(2)); assertEquals(new BigDecimal("2000.00000"), mon.convert(Currency.dollar).getMagnitude()); assertEquals(new BigDecimal("500.00000"), new Money(new BigDecimal("1000.00000"), Currency.dollar).convert(Currency.euro).getMagnitude()); } }