use of javax.money.MonetaryOperator in project jsr354-ri-bp by JavaMoney.
the class MonetaryRoundedFactoryBuilderTest method shouldReturnScaleMathContextOperator.
@Test
public void shouldReturnScaleMathContextOperator() {
int precision = 6;
int scale = 3;
RoundingMode roundingMode = RoundingMode.HALF_EVEN;
MonetaryRoundedFactory factory = MonetaryRoundedFactory.withRoundingMode(roundingMode).withScale(scale).withPrecision(precision).build();
assertNotNull(factory);
MonetaryOperator roundingOperator = factory.getRoundingOperator();
assertNotNull(roundingOperator);
assertTrue(PrecisionScaleRoundedOperator.class.isInstance(roundingOperator));
PrecisionScaleRoundedOperator result = PrecisionScaleRoundedOperator.class.cast(roundingOperator);
assertEquals(precision, result.getMathContext().getPrecision());
assertEquals(scale, result.getScale());
assertEquals(roundingMode, result.getMathContext().getRoundingMode());
}
use of javax.money.MonetaryOperator in project jsr354-ri-bp by JavaMoney.
the class MonetaryRoundedFactoryBuilderTest method shouldReturnMathContextScaleOperator.
@Test
public void shouldReturnMathContextScaleOperator() {
int precision = 6;
int scale = 3;
RoundingMode roundingMode = RoundingMode.HALF_EVEN;
MonetaryRoundedFactory factory = MonetaryRoundedFactory.withRoundingMode(roundingMode).withPrecision(precision).withScale(scale).build();
assertNotNull(factory);
MonetaryOperator roundingOperator = factory.getRoundingOperator();
assertNotNull(roundingOperator);
assertTrue(PrecisionScaleRoundedOperator.class.isInstance(roundingOperator));
PrecisionScaleRoundedOperator result = PrecisionScaleRoundedOperator.class.cast(roundingOperator);
assertEquals(precision, result.getMathContext().getPrecision());
assertEquals(scale, result.getScale());
assertEquals(roundingMode, result.getMathContext().getRoundingMode());
}
use of javax.money.MonetaryOperator in project jsr354-ri-bp by JavaMoney.
the class MonetaryRoundedFactoryBuilderTest method shouldReturnErrorWhenMonetaryOperatorIsNull.
@Test(expectedExceptions = NullPointerException.class)
public void shouldReturnErrorWhenMonetaryOperatorIsNull() {
MonetaryOperator roundingOperator = null;
MonetaryRoundedFactory.of(roundingOperator);
fail();
}
use of javax.money.MonetaryOperator in project jsr354-ri-bp by JavaMoney.
the class MonetaryRoundedFactoryBuilderTest method shouldReturnScaleRoundingOperator.
@Test
public void shouldReturnScaleRoundingOperator() {
int scale = 6;
RoundingMode roundingMode = RoundingMode.HALF_EVEN;
MonetaryRoundedFactory factory = MonetaryRoundedFactory.withRoundingMode(roundingMode).withScale(scale).build();
assertNotNull(factory);
MonetaryOperator roundingOperator = factory.getRoundingOperator();
assertNotNull(roundingOperator);
assertTrue(ScaleRoundedOperator.class.isInstance(roundingOperator));
ScaleRoundedOperator result = ScaleRoundedOperator.class.cast(roundingOperator);
assertEquals(scale, result.getScale());
assertEquals(roundingMode, result.getRoundingMode());
}
use of javax.money.MonetaryOperator in project jsr354-ri-bp by JavaMoney.
the class RoundedMoneyTest method testWithMonetaryOperator.
// /**
// * Test method for
// * {@link RoundedMoney#getAmountWhole()}.
// */
// @Test
// public void testGetAmountWhole() {
// assertEquals(1, RoundedMoney.of("XXX", 1.23455645d).getAmountWhole());
// assertEquals(1, RoundedMoney.of( 1).getAmountWhole());
// assertEquals(11, RoundedMoney.of( 11.0d).getAmountWhole());
// assertEquals(1234, RoundedMoney.of( 1234.1d).getAmountWhole());
// assertEquals(0, RoundedMoney.of( 0.0100d).getAmountWhole());
// }
//
// /**
// * Test method for
// * {@link RoundedMoney#getAmountFractionNumerator()}.
// */
// @Test
// public void testGetAmountFractionNumerator() {
// assertEquals(0, RoundedMoney.of("XXX", new BigDecimal("1.23455645"))
// .getAmountFractionNumerator());
// assertEquals(0, RoundedMoney.of( 1).getAmountFractionNumerator());
// assertEquals(0, RoundedMoney.of( new BigDecimal("11.0"))
// .getAmountFractionNumerator());
// assertEquals(10L, RoundedMoney.of( new BigDecimal("1234.1"))
// .getAmountFractionNumerator());
// assertEquals(1L, RoundedMoney.of( new BigDecimal("0.0100"))
// .getAmountFractionNumerator());
// }
//
// /**
// * Test method for
// * {@link
// RoundedMoney#getAmountFractionDenominator()}.
// */
// @Test
// public void testGetAmountFractionDenominator() {
// assertEquals(1, RoundedMoney.of("XXX", new BigDecimal("1.23455645"))
// .getAmountFractionDenominator());
// assertEquals(100, RoundedMoney.of( 1)
// .getAmountFractionDenominator());
// assertEquals(100, RoundedMoney.of( new BigDecimal("11.0"))
// .getAmountFractionDenominator());
// assertEquals(100L, RoundedMoney.of( new BigDecimal("1234.1"))
// .getAmountFractionDenominator());
// assertEquals(100L, RoundedMoney.of( new BigDecimal("0.0100"))
// .getAmountFractionDenominator());
// }
/**
* Test method for
* {@link RoundedMoney#with(javax.money.MonetaryOperator)}
* .
*/
@Test
public void testWithMonetaryOperator() {
MonetaryOperator adj = new MonetaryOperator() {
@Override
public MonetaryAmount apply(MonetaryAmount amount) {
return amount.getFactory().setCurrency(amount.getCurrency()).setNumber(-100).create();
}
};
RoundedMoney m = RoundedMoney.of(new BigDecimal("1.23645"), "USD");
RoundedMoney a = m.with(adj);
assertNotNull(a);
assertNotSame(m, a);
assertEquals(m.getCurrency(), a.getCurrency());
assertEquals(RoundedMoney.of(-100, m.getCurrency()), a);
adj = new MonetaryOperator() {
@Override
public MonetaryAmount apply(MonetaryAmount amount) {
return amount.multiply(2).getFactory().setCurrency(Monetary.getCurrency("CHF")).create();
}
};
a = m.with(adj);
assertNotNull(a);
assertNotSame(m, a);
assertEquals(Monetary.getCurrency("CHF"), a.getCurrency());
assertEquals(RoundedMoney.of(new BigDecimal("2.47"), a.getCurrency()), a);
}
Aggregations