4545public class MoneyTest {
4646 // TODO break this down into smaller test classes, 1.5k LOC seems a bit large;-)
4747
48- private static final BigDecimal TEN = new BigDecimal (10.0d );
4948 protected static final CurrencyUnit EURO = Monetary .getCurrency ("EUR" );
5049 protected static final CurrencyUnit DOLLAR = Monetary .getCurrency ("USD" );
5150 protected static final CurrencyUnit BRAZILIAN_REAL = Monetary .getCurrency ("BRL" );
51+ private static final BigInteger BI_MAX_LONG = new BigInteger ("9223372036854776000" );
52+ private static final BigInteger BI_MIN_LONG = new BigInteger ("-9223372036854776000" );
53+ private static final BigDecimal BD_MAX_DOUBLE = new BigDecimal ("1.797693134862316E+308" );
5254
5355 /**
5456 * Test method for
5557 * {@link org.javamoney.moneta.Money#of(java.math.BigDecimal, javax.money.CurrencyUnit)} .
5658 */
5759 @ Test
5860 public void testOfCurrencyUnitBigDecimal () {
59- Money m = Money .of (TEN , Monetary .getCurrency ("EUR" ));
60- assertEquals (TEN , m .getNumber ().numberValue (BigDecimal .class ));
61+ Money m = Money .of (BigDecimal . TEN , Monetary .getCurrency ("EUR" ));
62+ assertEquals (BigDecimal . TEN , m .getNumber ().numberValue (BigDecimal .class ));
6163 }
6264
6365 @ Test
6466 public void testOfCurrencyUnitDouble () {
6567 Money m = Money .of (10.0d , Monetary .getCurrency ("EUR" ));
66- assertEquals (m .getNumber ().doubleValue (), TEN .doubleValue ());
68+ assertEquals (m .getNumber ().doubleValue (), BigDecimal . TEN .doubleValue ());
6769 }
6870
6971 /**
@@ -215,8 +217,8 @@ public void testOfCurrencyUnitNumber() {
215217 m = Money .of (BigInteger .valueOf (23232312321432432L ), DOLLAR );
216218 assertNotNull (m );
217219 assertEquals (DOLLAR , m .getCurrency ());
218- assertEquals (Long . valueOf ( 23232312321432432L ), m .getNumber ().numberValue (Long .class ));
219- assertEquals (BigInteger . valueOf ( 23232312321432432L ), m .getNumber ().numberValue (BigInteger .class ));
220+ assertEquals (m .getNumber ().numberValue (Long .class ), Long . valueOf ( 23232312321432430L ));
221+ assertEquals (m .getNumber ().numberValue (BigInteger .class ), BigInteger . valueOf ( 23232312321432430L ));
220222 }
221223
222224 /**
@@ -310,8 +312,8 @@ public void testOfStringNumber() {
310312 m = Money .of (BigInteger .valueOf (23232312321432432L ), "USD" );
311313 assertNotNull (m );
312314 assertEquals (DOLLAR , m .getCurrency ());
313- assertEquals (Long . valueOf ( 23232312321432432L ), m .getNumber ().numberValue (Long .class ));
314- assertEquals (BigInteger . valueOf ( 23232312321432432L ), m .getNumber ().numberValue (BigInteger .class ));
315+ assertEquals (m .getNumber ().numberValue (Long .class ), Long . valueOf ( 23232312321432430L ));
316+ assertEquals (m .getNumber ().numberValue (BigInteger .class ), BigInteger . valueOf ( 23232312321432430L ));
315317 }
316318
317319 /**
@@ -822,10 +824,9 @@ public void testLongValue() {
822824 m = Money .of (-0.0 , "CHF" );
823825 assertEquals (0L , m .getNumber ().longValue (), "longValue of " + m );
824826 m = Money .of (Long .MAX_VALUE , "CHF" );
825- assertEquals (Long . MAX_VALUE , m .getNumber ().longValue () , "longValue of " + m );
827+ assertEquals (m .getNumber ().numberValue ( BigInteger . class ), BI_MAX_LONG , "longValue of " + m );
826828 m = Money .of (Long .MIN_VALUE , "CHF" );
827- assertEquals (Long .MIN_VALUE , m .getNumber ().longValue (), "longValue of " + m );
828- // try {
829+ assertEquals (m .getNumber ().numberValue (BigInteger .class ), BI_MIN_LONG , "longValue of " + m );
829830 m = Money .of (new BigDecimal ("12121762517652176251725178251872652765321876352187635217835378125" ), "CHF" );
830831 m .getNumber ().longValue ();
831832 }
@@ -844,9 +845,11 @@ public void testLongValueExact() {
844845 m = Money .of (-0.0 , "CHF" );
845846 assertEquals (0L , m .getNumber ().longValue (), "longValue of " + m );
846847 m = Money .of (Long .MAX_VALUE , "CHF" );
847- assertEquals (Long .MAX_VALUE , m .getNumber ().longValue (), "longValue of " + m );
848+ BigInteger bi = m .getNumber ().numberValueExact (BigInteger .class );
849+ assertEquals (bi , BI_MAX_LONG , "longValue of " + m );
848850 m = Money .of (Long .MIN_VALUE , "CHF" );
849- assertEquals (Long .MIN_VALUE , m .getNumber ().longValue (), "longValue of " + m );
851+ bi = m .getNumber ().numberValueExact (BigInteger .class );
852+ assertEquals (bi , BI_MIN_LONG , "longValue of " + m );
850853 try {
851854 m = Money .of (new BigDecimal ("12121762517652176251725178251872652765321876352187635217835378125" ), "CHF" );
852855 m .getNumber ().longValueExact ();
@@ -888,9 +891,9 @@ public void testDoubleValue() {
888891 m = Money .of (-0.0 , "CHF" );
889892 assertEquals (0d , m .getNumber ().doubleValue (), 0.0d , "doubleValue of " + m );
890893 m = Money .of (Double .MAX_VALUE , "CHF" );
891- assertEquals (Double . MAX_VALUE , m .getNumber ().doubleValue ( ), 0.0d , "doubleValue of " + m );
894+ assertEquals (m .getNumber ().numberValue ( BigDecimal . class ), BD_MAX_DOUBLE , "doubleValue of " + m );
892895 m = Money .of (Double .MIN_VALUE , "CHF" );
893- assertEquals (Double . MIN_VALUE , m .getNumber ().doubleValue (), 0.0d , "doubleValue of " + m );
896+ assertEquals (m .getNumber ().doubleValue (), Double . MIN_VALUE , 0.0d , "doubleValue of " + m );
894897 // try {
895898 m = Money .of (new BigDecimal ("12121762517652176251725178251872652765321876352187635217835378125" ), "CHF" );
896899 m .getNumber ().doubleValue ();
@@ -1291,6 +1294,4 @@ public void maxPrecisionOnDivide() {
12911294 assertEquals (quotient .getContext ().getPrecision (), 2 );
12921295 assertEquals (quotient .getNumber ().numberValue (BigDecimal .class ).longValueExact (), BigDecimal .valueOf (330 ).longValueExact ());
12931296 }
1294-
1295-
12961297}
0 commit comments