source: BMXNET_RPMS_dotNET_UTILITIES-BMX/branch/IHS BMX Framework/lib/NUnit/NUnit-2.5.10.11092/samples/vb/money/MoneyTest.vb@ 1146

Last change on this file since 1146 was 1146, checked in by Sam Habiel, 13 years ago

Initial Import of BMX4

File size: 7.5 KB
Line 
1' ****************************************************************
2' This is free software licensed under the NUnit license. You
3' may obtain a copy of the license as well as information regarding
4' copyright ownership at http://nunit.org/?p=license&r=2.4.
5' ****************************************************************
6
7Option Explicit On
8
9Imports System
10Imports NUnit.Framework
11
12Namespace NUnit.Samples
13
14 <TestFixture()> _
15 Public Class MoneyTest
16
17 Private f12CHF As Money
18 Private f14CHF As Money
19 Private f7USD As Money
20 Private f21USD As Money
21
22 Private fMB1 As MoneyBag
23 Private fMB2 As MoneyBag
24
25 <SetUp()> _
26 Protected Sub SetUp()
27
28 f12CHF = New Money(12, "CHF")
29 f14CHF = New Money(14, "CHF")
30 f7USD = New Money(7, "USD")
31 f21USD = New Money(21, "USD")
32
33 fMB1 = New MoneyBag(f12CHF, f7USD)
34 fMB2 = New MoneyBag(f14CHF, f21USD)
35
36 End Sub
37
38 <Test()> _
39 Public Sub BagMultiply()
40 ' {[12 CHF][7 USD]} *2 == {[24 CHF][14 USD]}
41 Dim bag() As Money = New Money() {New Money(24, "CHF"), New Money(14, "USD")}
42 Dim expected As New MoneyBag(bag)
43 Assert.AreEqual(expected, fMB1.Multiply(2))
44 Assert.AreEqual(fMB1, fMB1.Multiply(1))
45 Assert.IsTrue(fMB1.Multiply(0).IsZero)
46 End Sub
47
48 <Test()> _
49 Public Sub BagNegate()
50 ' {[12 CHF][7 USD]} negate == {[-12 CHF][-7 USD]}
51 Dim bag() As Money = New Money() {New Money(-12, "CHF"), New Money(-7, "USD")}
52 Dim expected As New MoneyBag(bag)
53 Assert.AreEqual(expected, fMB1.Negate())
54 End Sub
55
56 <Test()> _
57 Public Sub BagSimpleAdd()
58
59 ' {[12 CHF][7 USD]} + [14 CHF] == {[26 CHF][7 USD]}
60 Dim bag() As Money = New Money() {New Money(26, "CHF"), New Money(7, "USD")}
61 Dim expected As New MoneyBag(bag)
62 Assert.AreEqual(expected, fMB1.Add(f14CHF))
63
64 End Sub
65
66 <Test()> _
67 Public Sub BagSubtract()
68 ' {[12 CHF][7 USD]} - {[14 CHF][21 USD] == {[-2 CHF][-14 USD]}
69 Dim bag() As Money = New Money() {New Money(-2, "CHF"), New Money(-14, "USD")}
70 Dim expected As New MoneyBag(bag)
71 Assert.AreEqual(expected, fMB1.Subtract(fMB2))
72 End Sub
73
74 <Test()> _
75 Public Sub BagSumAdd()
76 ' {[12 CHF][7 USD]} + {[14 CHF][21 USD]} == {[26 CHF][28 USD]}
77 Dim bag() As Money = New Money() {New Money(26, "CHF"), New Money(28, "USD")}
78 Dim expected As New MoneyBag(bag)
79 Assert.AreEqual(expected, fMB1.Add(fMB2))
80 End Sub
81
82 <Test()> _
83 Public Sub IsZero()
84 Assert.IsTrue(fMB1.Subtract(fMB1).IsZero)
85
86 Dim bag() As Money = New Money() {New Money(0, "CHF"), New Money(0, "USD")}
87 Assert.IsTrue(New MoneyBag(bag).IsZero)
88 End Sub
89
90 <Test()> _
91 Public Sub MixedSimpleAdd()
92 ' [12 CHF] + [7 USD] == {[12 CHF][7 USD]}
93 Dim bag() As Money = New Money() {f12CHF, f7USD}
94 Dim expected As New MoneyBag(bag)
95 Assert.AreEqual(expected, f12CHF.Add(f7USD))
96 End Sub
97
98 <Test()> _
99 Public Sub MoneyBagEquals()
100 ' NOTE: Normally we use Assert.AreEqual to test whether two
101 ' objects are equal. But here we are testing the MoneyBag.Equals()
102 ' method itself, so using AreEqual would not serve the purpose.
103 Assert.IsFalse(fMB1.Equals(Nothing))
104
105 Assert.IsTrue(fMB1.Equals(fMB1))
106 Dim equal As MoneyBag = New MoneyBag(New Money(12, "CHF"), New Money(7, "USD"))
107 Assert.IsTrue(fMB1.Equals(equal))
108 Assert.IsFalse(fMB1.Equals(f12CHF))
109 Assert.IsFalse(f12CHF.Equals(fMB1))
110 Assert.IsFalse(fMB1.Equals(fMB2))
111 End Sub
112
113 <Test()> _
114 Public Sub MoneyBagHash()
115 Dim equal As MoneyBag = New MoneyBag(New Money(12, "CHF"), New Money(7, "USD"))
116 Assert.AreEqual(fMB1.GetHashCode(), equal.GetHashCode())
117 End Sub
118
119 <Test()> _
120 Public Sub MoneyEquals()
121 ' NOTE: Normally we use Assert.AreEqual to test whether two
122 ' objects are equal. But here we are testing the MoneyBag.Equals()
123 ' method itself, so using AreEqual would not serve the purpose.
124 Assert.IsFalse(f12CHF.Equals(Nothing))
125 Dim equalMoney As Money = New Money(12, "CHF")
126 Assert.IsTrue(f12CHF.Equals(f12CHF))
127 Assert.IsTrue(f12CHF.Equals(equalMoney))
128 Assert.IsFalse(f12CHF.Equals(f14CHF))
129 End Sub
130
131 <Test()> _
132 Public Sub MoneyHash()
133 Assert.IsFalse(f12CHF.Equals(Nothing))
134 Dim equal As Money = New Money(12, "CHF")
135 Assert.AreEqual(f12CHF.GetHashCode(), equal.GetHashCode())
136 End Sub
137
138 <Test()> _
139 Public Sub Normalize()
140 Dim bag() As Money = New Money() {New Money(26, "CHF"), New Money(28, "CHF"), New Money(6, "CHF")}
141 Dim moneyBag As New MoneyBag(bag)
142 Dim expected() As Money = New Money() {New Money(60, "CHF")}
143 ' // note: expected is still a MoneyBag
144 Dim expectedBag As New MoneyBag(expected)
145 Assert.AreEqual(expectedBag, moneyBag)
146 End Sub
147
148 <Test()> _
149 Public Sub Normalize2()
150 ' {[12 CHF][7 USD]} - [12 CHF] == [7 USD]
151 Dim expected As Money = New Money(7, "USD")
152 Assert.AreEqual(expected, fMB1.Subtract(f12CHF))
153 End Sub
154
155 <Test()> _
156 Public Sub Normalize3()
157 ' {[12 CHF][7 USD]} - {[12 CHF][3 USD]} == [4 USD]
158 Dim s1() As Money = New Money() {New Money(12, "CHF"), New Money(3, "USD")}
159 Dim ms1 As New MoneyBag(s1)
160 Dim expected As New Money(4, "USD")
161 Assert.AreEqual(expected, fMB1.Subtract(ms1))
162 End Sub
163
164 <Test()> _
165 Public Sub Normalize4()
166 ' [12 CHF] - {[12 CHF][3 USD]} == [-3 USD]
167 Dim s1() As Money = New Money() {New Money(12, "CHF"), New Money(3, "USD")}
168 Dim ms1 As New MoneyBag(s1)
169 Dim expected As New Money(-3, "USD")
170 Assert.AreEqual(expected, f12CHF.Subtract(ms1))
171 End Sub
172
173 <Test()> _
174 Public Sub Print()
175 Assert.AreEqual("[12 CHF]", f12CHF.ToString())
176 End Sub
177
178 <Test()> _
179 Public Sub SimpleAdd()
180
181 ' [12 CHF] + [14 CHF] == [26 CHF]
182 Dim expected As Money = New Money(26, "CHF")
183 Assert.AreEqual(expected, f12CHF.Add(f14CHF))
184
185 End Sub
186
187 <Test()> _
188 Public Sub SimpleNegate()
189
190 ' [14 CHF] negate == [-14 CHF]
191 Dim expected As New Money(-14, "CHF")
192 Assert.AreEqual(expected, f14CHF.Negate())
193
194 End Sub
195
196 <Test()> _
197 Public Sub SimpleSubtract()
198
199 ' [14 CHF] - [12 CHF] == [2 CHF]
200 Dim expected As New Money(2, "CHF")
201 Assert.AreEqual(expected, f14CHF.Subtract(f12CHF))
202
203 End Sub
204
205 <Test()> _
206 Public Sub SimpleMultiply()
207
208 ' [14 CHF] *2 == [28 CHF]
209 Dim expected As New Money(28, "CHF")
210 Assert.AreEqual(expected, f14CHF.Multiply(2))
211
212 End Sub
213
214 End Class
215
216End Namespace
Note: See TracBrowser for help on using the repository browser.