Skip to content

Commit 316bc27

Browse files
committed
Merged TCK contributions from Hackergarten.
1 parent 861d3bc commit 316bc27

File tree

1 file changed

+67
-19
lines changed

1 file changed

+67
-19
lines changed

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

Lines changed: 67 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -3,20 +3,19 @@
33
import org.javamoney.tck.ClassTester;
44
import org.jboss.test.audit.annotations.SpecAssertion;
55
import org.jboss.test.audit.annotations.SpecVersion;
6-
import org.junit.Ignore;
6+
import org.junit.Assert;
77
import org.junit.Test;
88

9-
import javax.money.MonetaryAmount;
10-
import javax.money.MonetaryAmounts;
11-
import javax.money.MonetaryOperator;
12-
import javax.money.MonetaryQuery;
9+
import javax.money.*;
1310
import java.util.Currency;
1411

1512
import static org.junit.Assert.*;
1613

1714
@SpecVersion(spec = "JSR 354", version = "1.0.0")
1815
public class MonetaryAmountTest{
1916

17+
private final static String DEFAULT_CURRENCY = "CHF";
18+
2019
@SpecAssertion(section = "4.2.2", id = "422-0")
2120
@Test
2221
public void testEnsureMonetaryAmount(){
@@ -89,9 +88,9 @@ public Integer queryFrom(MonetaryAmount amount){
8988
@Test
9089
public void testImplementsEquals(){
9190
for(Class type : MonetaryAmounts.getAmountTypes()){
92-
MonetaryAmount amount = MonetaryAmounts.getAmountFactory().setCurrency("XXX").setNumber(0).create();
93-
ClassTester.testHasPublicStaticMethodOpt(type, type, "equals", MonetaryOperator.class);
94-
MonetaryAmount amount2 = MonetaryAmounts.getAmountFactory().setCurrency("XXX").setNumber(0).create();
91+
MonetaryAmount amount = MonetaryAmounts.getAmountFactory(type).setCurrency("XXX").setNumber(0).create();
92+
ClassTester.testHasPublicMethod(type, type, "equals", Object.class);
93+
MonetaryAmount amount2 = MonetaryAmounts.getAmountFactory(type).setCurrency("XXX").setNumber(0).create();
9594
assertEquals(amount, amount2);
9695
}
9796
}
@@ -100,9 +99,9 @@ public void testImplementsEquals(){
10099
@Test
101100
public void testImplementsHashCode(){
102101
for(Class type : MonetaryAmounts.getAmountTypes()){
103-
MonetaryAmount amount = MonetaryAmounts.getAmountFactory().setCurrency("USD").setNumber(0).create();
104-
ClassTester.testHasPublicStaticMethodOpt(type, type, "hashCode", MonetaryOperator.class);
105-
MonetaryAmount amount2 = MonetaryAmounts.getAmountFactory().setCurrency("USD").setNumber(0).create();
102+
MonetaryAmount amount = MonetaryAmounts.getAmountFactory(type).setCurrency("USD").setNumber(0).create();
103+
ClassTester.testHasPublicMethod(type, type, "hashCode");
104+
MonetaryAmount amount2 = MonetaryAmounts.getAmountFactory(type).setCurrency("USD").setNumber(0).create();
106105
assertEquals(amount.hashCode(), amount2.hashCode());
107106
}
108107
}
@@ -112,17 +111,66 @@ public void testImplementsHashCode(){
112111
public void testImplementComparable(){
113112
for(Class type : MonetaryAmounts.getAmountTypes()){
114113
ClassTester.testComparable(type);
115-
MonetaryAmount amount = MonetaryAmounts.getAmountFactory().setCurrency("XXX").setNumber(0).create();
116-
ClassTester.testHasPublicStaticMethodOpt(type, type, "hashCode", MonetaryOperator.class);
117-
MonetaryAmount amount2 = MonetaryAmounts.getAmountFactory().setCurrency("XXX").setNumber(0).create();
118-
assertTrue("Comparable failed for: " + type.getName(), ((Comparable) amount).compareTo(amount2) == 0);
119-
MonetaryAmount amount3 = MonetaryAmounts.getAmountFactory().setCurrency("CHF").setNumber(1).create();
114+
MonetaryAmountFactory factory = MonetaryAmounts.getAmountFactory(type);
115+
MonetaryAmount amount = factory.setCurrency("XXX").setNumber(0).create();
116+
MonetaryAmount amount2 = factory.setCurrency("XXX").setNumber(0).create();
117+
MonetaryAmount amount3 = factory.setCurrency("CHF").setNumber(1).create();
118+
MonetaryAmount amount4 = factory.setCurrency("XXX").setNumber(1).create();
119+
120120
assertTrue("Comparable failed for: " + type.getName(), ((Comparable) amount).compareTo(amount3) > 0);
121+
121122
assertTrue("Comparable failed for: " + type.getName(), ((Comparable) amount3).compareTo(amount) < 0);
122-
MonetaryAmount amount4 = MonetaryAmounts.getAmountFactory().setCurrency("XXX").setNumber(1).create();
123-
assertTrue("Comparable failed for: " + type.getName(), ((Comparable) amount3).compareTo(amount4) < 0);
124-
assertTrue("Comparable failed for: " + type.getName(), ((Comparable) amount4).compareTo(amount3) > 0);
123+
124+
assertTrue("Comparable failed for: " + type.getName(), ((Comparable) amount).compareTo(amount4) < 0);
125+
126+
assertTrue("Comparable failed for: " + type.getName(), ((Comparable) amount4).compareTo(amount) > 0);
125127
}
126128
}
127129

130+
@SpecAssertion(section = "4.2.2", id = "422-D1")
131+
@Test
132+
public void testAddNumber(){
133+
for(Class type : MonetaryAmounts.getAmountTypes()){
134+
MonetaryAmount mAmount1 =
135+
MonetaryAmounts.getAmountFactory(type).setCurrency(DEFAULT_CURRENCY).setNumber(10).create();
136+
MonetaryAmount mAmount2 =
137+
MonetaryAmounts.getAmountFactory(type).setCurrency(DEFAULT_CURRENCY).setNumber(20).create();
138+
MonetaryAmount mActualResult = mAmount1.add(mAmount2);
139+
MonetaryAmount mExpectedResult =
140+
MonetaryAmounts.getAmountFactory(type).setCurrency(DEFAULT_CURRENCY).setNumber(30).create();
141+
Assert.assertEquals("Adding two simple ammounts", mExpectedResult, mActualResult);
142+
}
143+
}
144+
145+
@SpecAssertion(section = "4.2.2", id = "422-D1")
146+
@Test
147+
public void testAddDouble(){
148+
for(Class type : MonetaryAmounts.getAmountTypes()){
149+
MonetaryAmount mAmount1 =
150+
MonetaryAmounts.getAmountFactory(type).setCurrency(DEFAULT_CURRENCY).setNumber(10d).create();
151+
MonetaryAmount mAmount2 =
152+
MonetaryAmounts.getAmountFactory(type).setCurrency(DEFAULT_CURRENCY).setNumber(20d).create();
153+
MonetaryAmount mActualResult = mAmount1.add(mAmount2);
154+
MonetaryAmount mExpectedResult =
155+
MonetaryAmounts.getAmountFactory(type).setCurrency(DEFAULT_CURRENCY).setNumber(30d).create();
156+
assertEquals("Adding two simple ammounts", mExpectedResult, mActualResult);
157+
}
158+
}
159+
160+
@SpecAssertion(section = "4.2.2", id = "422-D1")
161+
@Test
162+
public void testAddLong(){
163+
for(Class type : MonetaryAmounts.getAmountTypes()){
164+
MonetaryAmount mAmount1 =
165+
MonetaryAmounts.getAmountFactory(type).setCurrency(DEFAULT_CURRENCY).setNumber(10l).create();
166+
MonetaryAmount mAmount2 =
167+
MonetaryAmounts.getAmountFactory(type).setCurrency(DEFAULT_CURRENCY).setNumber(20l).create();
168+
MonetaryAmount mActualResult = mAmount1.add(mAmount2);
169+
MonetaryAmount mExpectedResult =
170+
MonetaryAmounts.getAmountFactory(type).setCurrency(DEFAULT_CURRENCY).setNumber(30l).create();
171+
Assert.assertEquals("Adding two simple ammounts", mExpectedResult, mActualResult);
172+
}
173+
}
174+
175+
128176
}

0 commit comments

Comments
 (0)