use of javax.money.CurrencyUnit in project jsr354-ri by JavaMoney.
the class RoudingMonetaryAmountOperatorTest method shouldReturnPositiveValueUsingRoudingType.
@Test
public void shouldReturnPositiveValueUsingRoudingType() {
operator = new RoudingMonetaryAmountOperator(RoundingMode.HALF_EVEN);
CurrencyUnit currency = Monetary.getCurrency("EUR");
MonetaryAmount money = Money.parse("EUR 2.3523");
MonetaryAmount result = operator.apply(money);
assertEquals(result.getCurrency(), currency);
assertEquals(result.getNumber().doubleValue(), 2.35);
}
use of javax.money.CurrencyUnit in project jsr354-ri by JavaMoney.
the class ScaleRoundedOperatorTest method shouldRoundedMonetaryOperatorWhenTheImplementationIsMoney.
@Test
public void shouldRoundedMonetaryOperatorWhenTheImplementationIsMoney() {
int scale = 4;
CurrencyUnit real = Monetary.getCurrency("BRL");
MonetaryAmount money = Money.of(BigDecimal.valueOf(35.34567), real);
ScaleRoundedOperator monetaryOperator = ScaleRoundedOperator.of(scale, RoundingMode.HALF_EVEN);
MonetaryAmount result = monetaryOperator.apply(money);
assertTrue(RoundedMoney.class.isInstance(result));
assertEquals(result.getCurrency(), real);
assertEquals(result.getNumber().getScale(), scale);
assertEquals(BigDecimal.valueOf(35.3457), result.getNumber().numberValue(BigDecimal.class));
}
use of javax.money.CurrencyUnit in project jsr354-ri by JavaMoney.
the class MonetaryOperatorsTest method shouldRoudingUsingRoundingModeAndScale.
@Test
public void shouldRoudingUsingRoundingModeAndScale() {
CurrencyUnit euro = Monetary.getCurrency("EUR");
MonetaryAmount money = Money.parse("EUR 2.355432");
MonetaryAmount result = MonetaryOperators.rounding(RoundingMode.HALF_EVEN, 4).apply(money);
assertNotNull(result);
assertEquals(result.getCurrency(), euro);
assertEquals(Double.valueOf(2.3554), result.getNumber().doubleValue());
}
use of javax.money.CurrencyUnit in project jsr354-ri by JavaMoney.
the class MoneyUtils method checkAmountParameter.
/**
* Method to check if a currency is compatible with this amount instance.
*
* @param amount The monetary amount to be compared to, never null.
* @param currencyUnit the currency unit to compare, never null.
* @throws MonetaryException If the amount is null, or the amount's {@link CurrencyUnit} is not
* compatible, meaning has a different value of
* {@link CurrencyUnit#getCurrencyCode()}).
*/
public static void checkAmountParameter(MonetaryAmount amount, CurrencyUnit currencyUnit) {
Objects.requireNonNull(amount, "Amount must not be null.");
final CurrencyUnit amountCurrency = amount.getCurrency();
if (!(currencyUnit.getCurrencyCode().equals(amountCurrency.getCurrencyCode()))) {
throw new MonetaryException("Currency mismatch: " + currencyUnit + '/' + amountCurrency);
}
}
use of javax.money.CurrencyUnit in project jsr354-ri by JavaMoney.
the class BuildableCurrencyUnitTest method testSerialization.
/**
* Tests that currencies built by {@link CurrencyUnitBuilder} are serializable.
*/
@Test
public void testSerialization() throws ClassNotFoundException, IOException {
CurrencyUnit currencyUnit = CurrencyUnitBuilder.of("SDR", "serialization-test").setDefaultFractionDigits(3).build(false);
CurrencyUnit copy = (CurrencyUnit) deserailize(serailize(currencyUnit));
assertEquals(currencyUnit, copy);
}
Aggregations