1 package junit.samples.money;
2
3 import junit.framework.*;
4
|
5 public class MoneyTest extends TestCase {
|
6 private Money f12CHF;
7 private Money f14CHF;
8 private Money f7USD;
9 private Money f21USD;
10
11 private IMoney fMB1;
12 private IMoney fMB2;
13
14 public static void main(String args[]) {
|
15 > junit.textui.TestRunner.run(MoneyTest.class);
16 > }
|
17 protected void setUp() {
|
18 f12CHF= new Money(12, "CHF");
19 f14CHF= new Money(14, "CHF");
20 f7USD= new Money( 7, "USD");
21 f21USD= new Money(21, "USD");
|
22
|
23 fMB1= MoneyBag.create(f12CHF, f7USD);
24 fMB2= MoneyBag.create(f14CHF, f21USD);
25 }
|
26 public void testBagMultiply() {
27 // {[12 CHF][7 USD]} *2 == {[24 CHF][14 USD]}
|
28 IMoney expected= MoneyBag.create(new Money(24, "CHF"), new Money(14, "USD"));
29 assertEquals(expected, fMB1.multiply(2));
30 assertEquals(fMB1, fMB1.multiply(1));
31 assertTrue(fMB1.multiply(0).isZero());
32 }
|
33 public void testBagNegate() {
34 // {[12 CHF][7 USD]} negate == {[-12 CHF][-7 USD]}
|
35 IMoney expected= MoneyBag.create(new Money(-12, "CHF"), new Money(-7, "USD"));
36 assertEquals(expected, fMB1.negate());
37 }
|
38 public void testBagSimpleAdd() {
39 // {[12 CHF][7 USD]} + [14 CHF] == {[26 CHF][7 USD]}
|
40 IMoney expected= MoneyBag.create(new Money(26, "CHF"), new Money(7, "USD"));
41 assertEquals(expected, fMB1.add(f14CHF));
42 }
|
43 public void testBagSubtract() {
44 // {[12 CHF][7 USD]} - {[14 CHF][21 USD] == {[-2 CHF][-14 USD]}
|
45 IMoney expected= MoneyBag.create(new Money(-2, "CHF"), new Money(-14, "USD"));
46 assertEquals(expected, fMB1.subtract(fMB2));
47 }
|
48 public void testBagSumAdd() {
49 // {[12 CHF][7 USD]} + {[14 CHF][21 USD]} == {[26 CHF][28 USD]}
|
50 IMoney expected= MoneyBag.create(new Money(26, "CHF"), new Money(28, "USD"));
51 assertEquals(expected, fMB1.add(fMB2));
52 }
|
53 public void testIsZero() {
|
54 assertTrue(fMB1.subtract(fMB1).isZero());
55 assertTrue(MoneyBag.create(new Money (0, "CHF"), new Money (0, "USD")).isZero());
56 }
|
57 public void testMixedSimpleAdd() {
58 // [12 CHF] + [7 USD] == {[12 CHF][7 USD]}
|
59 IMoney expected= MoneyBag.create(f12CHF, f7USD);
60 assertEquals(expected, f12CHF.add(f7USD));
61 }
|
62 public void testBagNotEquals() {
|
63 IMoney bag= MoneyBag.create(f12CHF, f7USD);
64 assertFalse(bag.equals(new Money(12, "DEM").add(f7USD)));
65 }
|
66 public void testMoneyBagEquals() {
|
67 assertTrue(!fMB1.equals(null));
|
68
|
69 assertEquals(fMB1, fMB1);
70 IMoney equal= MoneyBag.create(new Money(12, "CHF"), new Money(7, "USD"));
71 assertTrue(fMB1.equals(equal));
72 assertTrue(!fMB1.equals(f12CHF));
73 assertTrue(!f12CHF.equals(fMB1));
74 assertTrue(!fMB1.equals(fMB2));
75 }
|
76 public void testMoneyBagHash() {
|
77 IMoney equal= MoneyBag.create(new Money(12, "CHF"), new Money(7, "USD"));
78 assertEquals(fMB1.hashCode(), equal.hashCode());
79 }
|
80 public void testMoneyEquals() {
|
81 assertTrue(!f12CHF.equals(null));
82 Money equalMoney= new Money(12, "CHF");
83 assertEquals(f12CHF, f12CHF);
84 assertEquals(f12CHF, equalMoney);
85 assertEquals(f12CHF.hashCode(), equalMoney.hashCode());
86 assertTrue(!f12CHF.equals(f14CHF));
87 }
|
88 public void testMoneyHash() {
|
89 assertTrue(!f12CHF.equals(null));
90 Money equal= new Money(12, "CHF");
91 assertEquals(f12CHF.hashCode(), equal.hashCode());
92 }
|
93 public void testSimplify() {
|
94 IMoney money= MoneyBag.create(new Money(26, "CHF"), new Money(28, "CHF"));
95 assertEquals(new Money(54, "CHF"), money);
96 }
|
97 public void testNormalize2() {
98 // {[12 CHF][7 USD]} - [12 CHF] == [7 USD]
|
99 Money expected= new Money(7, "USD");
100 assertEquals(expected, fMB1.subtract(f12CHF));
101 }
|
102 public void testNormalize3() {
103 // {[12 CHF][7 USD]} - {[12 CHF][3 USD]} == [4 USD]
|
104 IMoney ms1= MoneyBag.create(new Money(12, "CHF"), new Money(3, "USD"));
105 Money expected= new Money(4, "USD");
106 assertEquals(expected, fMB1.subtract(ms1));
107 }
|
108 public void testNormalize4() {
109 // [12 CHF] - {[12 CHF][3 USD]} == [-3 USD]
|
110 IMoney ms1= MoneyBag.create(new Money(12, "CHF"), new Money(3, "USD"));
111 Money expected= new Money(-3, "USD");
112 assertEquals(expected, f12CHF.subtract(ms1));
113 }
|
114 public void testPrint() {
|
115 assertEquals("[12 CHF]", f12CHF.toString());
116 }
|
117 public void testSimpleAdd() {
118 // [12 CHF] + [14 CHF] == [26 CHF]
|
119 Money expected= new Money(26, "CHF");
120 assertEquals(expected, f12CHF.add(f14CHF));
121 }
|
122 public void testSimpleBagAdd() {
123 // [14 CHF] + {[12 CHF][7 USD]} == {[26 CHF][7 USD]}
|
124 IMoney expected= MoneyBag.create(new Money(26, "CHF"), new Money(7, "USD"));
125 assertEquals(expected, f14CHF.add(fMB1));
126 }
|
127 public void testSimpleMultiply() {
128 // [14 CHF] *2 == [28 CHF]
|
129 Money expected= new Money(28, "CHF");
130 assertEquals(expected, f14CHF.multiply(2));
131 }
|
132 public void testSimpleNegate() {
133 // [14 CHF] negate == [-14 CHF]
|
134 Money expected= new Money(-14, "CHF");
135 assertEquals(expected, f14CHF.negate());
136 }
|
137 public void testSimpleSubtract() {
138 // [14 CHF] - [12 CHF] == [2 CHF]
|
139 Money expected= new Money(2, "CHF");
140 assertEquals(expected, f14CHF.subtract(f12CHF));
141 }
|
142 } |