Search in sources :

Example 11 with MonetaryOperator

use of javax.money.MonetaryOperator in project jsr354-ri-bp by JavaMoney.

the class FastMoneyTest method testWithMonetaryOperator.

/**
 * Test method for {@link FastMoney#with(javax.money.MonetaryOperator)} .
 */
@Test
public void testWithMonetaryOperator() {
    MonetaryOperator adj = new MonetaryOperator() {

        @Override
        public MonetaryAmount apply(MonetaryAmount amount) {
            return FastMoney.of(-100, amount.getCurrency());
        }
    };
    FastMoney m = FastMoney.of(new BigDecimal("1.2345"), "XXX");
    FastMoney a = m.with(adj);
    assertNotNull(a);
    assertNotSame(m, a);
    assertEquals(m.getCurrency(), a.getCurrency());
    assertEquals(FastMoney.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(FastMoney.of(1.2345 * 2, a.getCurrency()), a);
}
Also used : MonetaryAmount(javax.money.MonetaryAmount) MonetaryOperator(javax.money.MonetaryOperator) BigDecimal(java.math.BigDecimal) Test(org.testng.annotations.Test)

Example 12 with MonetaryOperator

use of javax.money.MonetaryOperator in project jsr354-ri-bp by JavaMoney.

the class DefaultMonetaryRoundedFactoryTest method shouldReturnGetRoudingOperator.

@Test
public void shouldReturnGetRoudingOperator() {
    MonetaryOperator roundingOperator = factory.getRoundingOperator();
    assertEquals(identical, roundingOperator);
}
Also used : MonetaryOperator(javax.money.MonetaryOperator) Test(org.testng.annotations.Test)

Example 13 with MonetaryOperator

use of javax.money.MonetaryOperator in project jsr354-ri by JavaMoney.

the class MonetaryRoundedFactoryBuilderTest method shouldReturnMathContextOperator.

@Test
public void shouldReturnMathContextOperator() {
    int precision = 6;
    RoundingMode roundingMode = RoundingMode.HALF_EVEN;
    MonetaryRoundedFactory factory = MonetaryRoundedFactory.withRoundingMode(roundingMode).withPrecision(precision).build();
    assertNotNull(factory);
    MonetaryOperator roundingOperator = factory.getRoundingOperator();
    assertNotNull(roundingOperator);
    assertTrue(PrecisionContextRoundedOperator.class.isInstance(roundingOperator));
    MathContext result = PrecisionContextRoundedOperator.class.cast(roundingOperator).getMathContext();
    assertEquals(precision, result.getPrecision());
    assertEquals(roundingMode, result.getRoundingMode());
}
Also used : RoundingMode(java.math.RoundingMode) MonetaryOperator(javax.money.MonetaryOperator) MathContext(java.math.MathContext) Test(org.testng.annotations.Test)

Example 14 with MonetaryOperator

use of javax.money.MonetaryOperator in project jsr354-ri 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());
}
Also used : RoundingMode(java.math.RoundingMode) MonetaryOperator(javax.money.MonetaryOperator) Test(org.testng.annotations.Test)

Example 15 with MonetaryOperator

use of javax.money.MonetaryOperator in project jsr354-ri 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());
}
Also used : RoundingMode(java.math.RoundingMode) MonetaryOperator(javax.money.MonetaryOperator) Test(org.testng.annotations.Test)

Aggregations

MonetaryOperator (javax.money.MonetaryOperator)20 Test (org.testng.annotations.Test)20 RoundingMode (java.math.RoundingMode)9 MonetaryAmount (javax.money.MonetaryAmount)5 BigDecimal (java.math.BigDecimal)3 MathContext (java.math.MathContext)3 Assert.assertEquals (org.testng.Assert.assertEquals)2 Assert.assertNotNull (org.testng.Assert.assertNotNull)2 Assert.assertTrue (org.testng.Assert.assertTrue)2 Assert.fail (org.testng.Assert.fail)2 ByteArrayInputStream (java.io.ByteArrayInputStream)1 ByteArrayOutputStream (java.io.ByteArrayOutputStream)1 IOException (java.io.IOException)1 ObjectInputStream (java.io.ObjectInputStream)1 ObjectOutputStream (java.io.ObjectOutputStream)1 MethodHandles (java.lang.invoke.MethodHandles)1 BigInteger (java.math.BigInteger)1 Level (java.util.logging.Level)1 Logger (java.util.logging.Logger)1 CurrencyUnit (javax.money.CurrencyUnit)1