Skip to content

Commit 6169d0e

Browse files
committed
- Added tests.
1 parent ae91037 commit 6169d0e

File tree

1 file changed

+97
-5
lines changed

1 file changed

+97
-5
lines changed

src/test/java/org/javamoney/tck/tests/ModellingMonetaryAmountsTest.java

Lines changed: 97 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
import org.junit.Test;
88

99
import javax.money.*;
10+
import java.math.BigDecimal;
1011
import java.util.Currency;
1112

1213
import static org.junit.Assert.*;
@@ -75,9 +76,48 @@ public void testGetMonetaryContext(){
7576
@SpecAssertion(section = "4.2.2", id = "422-A4")
7677
@Test
7778
public void testIsNegative(){
78-
fail();
79+
for(Class type : MonetaryAmounts.getAmountTypes()){
80+
MonetaryAmountFactory<MonetaryAmount> f = MonetaryAmounts.getAmountFactory(type);
81+
f.setCurrency("CHF");
82+
MonetaryAmount[] moneys = new MonetaryAmount[]{f.setNumber(0).create(), f.setNumber(0.0).create(),
83+
f.setNumber(BigDecimal.ZERO).create(), f.setNumber(new BigDecimal("0.00000000000000000")).create(),
84+
f.setNumber(100).create(), f.setNumber(34242344).create(), f.setNumber(23123213.435).create()};
85+
for(MonetaryAmount m : moneys){
86+
assertFalse("Invalid isNegative (expected false): " + m, m.isNegative());
87+
}
88+
moneys = new MonetaryAmount[]{f.setNumber(-100).create(), f.setNumber(-34242344).create(),
89+
f.setNumber(-23123213.435).create()};
90+
for(MonetaryAmount m : moneys){
91+
assertTrue("Invalid isNegative (expected true): " + m, m.isNegative());
92+
}
93+
}
94+
}
95+
96+
/**
97+
* For each MonetaryAmount implementation: Ensure isNegative()
98+
* returns correct results.
99+
*/
100+
@SpecAssertion(section = "4.2.2", id = "422-A4")
101+
@Test
102+
public void testIsNegativeOrZero(){
103+
for(Class type : MonetaryAmounts.getAmountTypes()){
104+
MonetaryAmountFactory<MonetaryAmount> f = MonetaryAmounts.getAmountFactory(type);
105+
f.setCurrency("CHF");
106+
MonetaryAmount[] moneys = new MonetaryAmount[]{f.setNumber(100).create(), f.setNumber(34242344).create(),
107+
f.setNumber(23123213.435).create()};
108+
for(MonetaryAmount m : moneys){
109+
assertFalse("Invalid negativeOrZero (expected false): " + m, m.isNegativeOrZero());
110+
}
111+
moneys = new MonetaryAmount[]{f.setNumber(0).create(), f.setNumber(0.0).create(),
112+
f.setNumber(BigDecimal.ZERO).create(), f.setNumber(new BigDecimal("0.0000")).create(),
113+
f.setNumber(-100).create(), f.setNumber(-34242344).create(), f.setNumber(-23123213.435).create()};
114+
for(MonetaryAmount m : moneys){
115+
assertTrue("Invalid negativeOrZero (expected true): " + m, m.isNegativeOrZero());
116+
}
117+
}
79118
}
80119

120+
81121
/**
82122
* For each MonetaryAmount implementation: Ensure isPositive()
83123
* returns correct results.
@@ -105,7 +145,22 @@ public void testIsZeroAdvanced(){
105145
@SpecAssertion(section = "4.2.2", id = "422-A7")
106146
@Test
107147
public void testSignum(){
108-
fail();
148+
for(Class type : MonetaryAmounts.getAmountTypes()){
149+
MonetaryAmountFactory<MonetaryAmount> f = MonetaryAmounts.getAmountFactory(type);
150+
f.setCurrency("CHF");
151+
MonetaryAmount m = f.setNumber(100).create();
152+
assertEquals("signum of " + m, 1, m.signum());
153+
m = f.setNumber(-100).create();
154+
assertEquals("signum of " + m, -1, m.signum());
155+
m = f.setNumber(100.3435).create();
156+
assertEquals("signum of " + m, 1, m.signum());
157+
m = f.setNumber(-100.3435).create();
158+
assertEquals("signum of " + m, -1, m.signum());
159+
m = f.setNumber(0).create();
160+
assertEquals("signum of " + m, 0, m.signum());
161+
m = f.setNumber(-0).create();
162+
assertEquals("signum of " + m, 0, m.signum());
163+
}
109164
}
110165

111166

@@ -118,7 +173,22 @@ public void testSignum(){
118173
@SpecAssertion(section = "4.2.2", id = "422-B1")
119174
@Test
120175
public void testMonetaryAmountFactories(){
121-
fail("Not implemented");
176+
for(Class type : MonetaryAmounts.getAmountTypes()){
177+
MonetaryAmountFactory<MonetaryAmount> f = MonetaryAmounts.getAmountFactory(type);
178+
assertNotNull(f);
179+
MonetaryAmount m = f.setCurrency("CHF").setNumber(10).create();
180+
assertEquals(m.getClass(), type);
181+
m = f.setCurrency("CHF").setNumber(-10).create();
182+
assertEquals(m.getClass(), type);
183+
m = f.setCurrency("CHF").setNumber(10.3).create();
184+
assertEquals(m.getClass(), type);
185+
m = f.setCurrency("CHF").setNumber(-10.3).create();
186+
assertEquals(m.getClass(), type);
187+
m = f.setCurrency("CHF").setNumber(0.0).create();
188+
assertEquals(m.getClass(), type);
189+
m = f.setCurrency("CHF").setNumber(-0.0).create();
190+
assertEquals(m.getClass(), type);
191+
}
122192
}
123193

124194
/**
@@ -207,7 +277,18 @@ public void testMonetaryAmount_isGreaterThanOrEquals(){
207277
@SpecAssertion(section = "4.2.2", id = "422-C3")
208278
@Test
209279
public void testMonetaryAmount_isLessThan(){
210-
fail("Not implemented");
280+
for(Class type : MonetaryAmounts.getAmountTypes()){
281+
MonetaryAmountFactory<MonetaryAmount> f = MonetaryAmounts.getAmountFactory(type);
282+
f.setCurrency("CHF");
283+
assertFalse(f.setNumber(BigDecimal.valueOf(0d)).create()
284+
.isLessThan(f.setNumber(BigDecimal.valueOf(0)).create()));
285+
assertFalse(f.setNumber(BigDecimal.valueOf(0.00000000001d)).create()
286+
.isLessThan(f.setNumber(BigDecimal.valueOf(0d)).create()));
287+
assertFalse(f.setNumber(15).create().isLessThan(f.setNumber(10).create()));
288+
assertFalse(f.setNumber(15.546).create().isLessThan(f.setNumber(10.34).create()));
289+
assertTrue(f.setNumber(5).create().isLessThan(f.setNumber(10).create()));
290+
assertTrue(f.setNumber(5.546).create().isLessThan(f.setNumber(10.34).create()));
291+
}
211292
}
212293

213294
/**
@@ -217,7 +298,18 @@ public void testMonetaryAmount_isLessThan(){
217298
@SpecAssertion(section = "4.2.2", id = "422-C4")
218299
@Test
219300
public void testMonetaryAmount_isLessThanOrEquals(){
220-
fail("Not implemented");
301+
for(Class type : MonetaryAmounts.getAmountTypes()){
302+
MonetaryAmountFactory<MonetaryAmount> f = MonetaryAmounts.getAmountFactory(type);
303+
f.setCurrency("CHF");
304+
assertTrue(f.setNumber(BigDecimal.valueOf(0d)).create()
305+
.isLessThanOrEqualTo(f.setNumber(BigDecimal.valueOf(0)).create()));
306+
assertFalse(f.setNumber(BigDecimal.valueOf(0.00000000001d)).create()
307+
.isLessThanOrEqualTo(f.setNumber(BigDecimal.valueOf(0d)).create()));
308+
assertFalse(f.setNumber(15).create().isLessThanOrEqualTo(f.setNumber(10).create()));
309+
assertFalse(f.setNumber(15.546).create().isLessThan(f.setNumber(10.34).create()));
310+
assertTrue(f.setNumber(5).create().isLessThanOrEqualTo(f.setNumber(10).create()));
311+
assertTrue(f.setNumber(5.546).create().isLessThanOrEqualTo(f.setNumber(10.34).create()));
312+
}
221313
}
222314

223315
/**

0 commit comments

Comments
 (0)