TestMoney.java:
package com;
import junit.framework.TestCase;
public class TestMoney extends TestCase {
?public void testMultiplication() {
??Money five = Money.dollar(5);
??assertEquals(Money.dollar(10), five.times(2));
??assertEquals(Money.dollar(15), five.times(3));
?}
?public void testEqualsObject() {
??assertTrue(Money.dollar(5).equals(Money.dollar(5)));
??assertFalse(Money.dollar(5).equals(Money.dollar(6)));
??assertFalse(Money.franc(5).equals(Money.dollar(5)));
?}
?public void testCurrency() {
??assertEquals("USD", Money.dollar(1).currency());
??assertEquals("CHF", Money.franc(1).currency());
?}
?public void testSimpleAddition() {
??Money five = Money.dollar(5);
??Expression result = five.plus(five);
??Sum sum = (Sum) result;
??Bank bank = new Bank();
??Money reduced = bank.reduce(sum, "USD");
??assertEquals(Money.dollar(10), reduced);
?}
?public void testPlusReturnSum() {
??Money five = Money.dollar(5);
??Expression result = five.plus(five);
??Sum sum = (Sum) result;
??assertEquals(five, sum.augend);
??assertEquals(five, sum.addend);
?}
?public void testReduceSum() {
??Expression sum = new Sum(Money.dollar(3), Money.dollar(4));
??Bank bank = new Bank();
??Money result = bank.reduce(sum, "USD");
??assertEquals(Money.dollar(7), result);
?}
?public void testReduceMoney(){
??Bank bank = new Bank();
??Money result = bank.reduce(Money.dollar(1), "USD");
??assertEquals(Money.dollar(1),result);
?}
}
|