Search in sources :

Example 6 with AmountFormatQuery

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

the class MonetaryFormatsTest method testParse_BGN_bg_BG.

@Test
public void testParse_BGN_bg_BG() {
    AmountFormatQuery formatQuery = AmountFormatQueryBuilder.of(BULGARIA).set(CODE).build();
    MonetaryAmountFormat format = MonetaryFormats.getAmountFormat(formatQuery);
    assertMoneyParse(format, "00000123 BGN", 123.0, "BGN");
    assertMoneyParse(format, "123 BGN", 123.0, "BGN");
    assertMoneyParse(format, "123,01 BGN", 123.01, "BGN");
    assertMoneyParse(format, "14000,12 BGN", 14000.12, "BGN");
    assertMoneyParse(format, "14\u00A0000,12 BGN", 14000.12, "BGN");
    assertMoneyParse(format, "14 000,12 BGN", 14000.12, "BGN");
}
Also used : AmountFormatQuery(javax.money.format.AmountFormatQuery) MonetaryAmountFormat(javax.money.format.MonetaryAmountFormat) Test(org.testng.annotations.Test)

Example 7 with AmountFormatQuery

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

the class MonetaryFormatsTest method testFormat_BGN_bg_BG.

@Test
public void testFormat_BGN_bg_BG() {
    AmountFormatQuery formatQuery = AmountFormatQueryBuilder.of(BULGARIA).set(CODE).build();
    MonetaryAmountFormat format = MonetaryFormats.getAmountFormat(formatQuery);
    assertMoneyFormat(format, Money.of(123.01, "BGN"), "123,01 BGN");
    assertMoneyFormat(format, Money.of(14000.12, "BGN"), "14 000,12 BGN");
}
Also used : AmountFormatQuery(javax.money.format.AmountFormatQuery) MonetaryAmountFormat(javax.money.format.MonetaryAmountFormat) Test(org.testng.annotations.Test)

Example 8 with AmountFormatQuery

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

the class MonetaryFormatsTest method testParse_amount_without_currency_code_but_with_currency_in_context.

/**
 * Test related to https://github.com/JavaMoney/jsr354-ri/issues/294
 */
@Test
public void testParse_amount_without_currency_code_but_with_currency_in_context() {
    CurrencyUnit eur = Monetary.getCurrency("EUR");
    AmountFormatQuery formatQuery = AmountFormatQueryBuilder.of(GERMANY).set(CurrencyUnit.class, eur).build();
    MonetaryAmountFormat format = MonetaryFormats.getAmountFormat(formatQuery);
    try {
        MonetaryAmount parsedAmount = format.parse("0.01");
        assertSame(parsedAmount.getCurrency(), eur);
        assertEquals(parsedAmount.getNumber().doubleValueExact(), 0.01D);
        assertEquals(parsedAmount.toString(), "EUR 0.01");
    } catch (MonetaryParseException e) {
        assertEquals(e.getMessage(), "Error parsing CurrencyUnit: no input.");
        assertEquals(e.getErrorIndex(), -1);
    }
}
Also used : CurrencyUnit(javax.money.CurrencyUnit) MonetaryAmount(javax.money.MonetaryAmount) AmountFormatQuery(javax.money.format.AmountFormatQuery) MonetaryAmountFormat(javax.money.format.MonetaryAmountFormat) MonetaryParseException(javax.money.format.MonetaryParseException) Test(org.testng.annotations.Test)

Example 9 with AmountFormatQuery

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

the class MonetaryAmountFormatTest method testFormatWithBuilder2.

/**
 * Test method for
 * {@link javax.money.format.MonetaryAmountFormat#format(javax.money.MonetaryAmount)} .
 */
@Test
public void testFormatWithBuilder2() {
    AmountFormatQuery formatQuery = AmountFormatQueryBuilder.of(GERMANY).set(NUMERIC_CODE).build();
    MonetaryAmountFormat format = MonetaryFormats.getAmountFormat(formatQuery);
    MonetaryAmount amountChf = Monetary.getDefaultAmountFactory().setCurrency("CHF").setNumber(12.50).create();
    assertEquals("12,50 756", format.format(amountChf));
    format = MonetaryFormats.getAmountFormat(AmountFormatQueryBuilder.of(US).set(SYMBOL).build());
    MonetaryAmount amountUsd = Monetary.getDefaultAmountFactory().setCurrency("USD").setNumber(123456.561).create();
    assertEquals("$123,456.56", format.format(amountUsd));
}
Also used : MonetaryAmount(javax.money.MonetaryAmount) AmountFormatQuery(javax.money.format.AmountFormatQuery) MonetaryAmountFormat(javax.money.format.MonetaryAmountFormat) Test(org.testng.annotations.Test)

Example 10 with AmountFormatQuery

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

the class MonetaryFormatsTest method testFormat_DKK_da.

@Test
public void testFormat_DKK_da() {
    AmountFormatQuery formatQuery = AmountFormatQueryBuilder.of(DANISH).set(CODE).build();
    MonetaryAmountFormat format = MonetaryFormats.getAmountFormat(formatQuery);
    assertMoneyFormat(format, Money.of(123.01, "DKK"), "DKK 123,01");
    assertMoneyFormat(format, Money.of(14000.12, "DKK"), "DKK 14.000,12");
}
Also used : AmountFormatQuery(javax.money.format.AmountFormatQuery) MonetaryAmountFormat(javax.money.format.MonetaryAmountFormat) Test(org.testng.annotations.Test)

Aggregations

AmountFormatQuery (javax.money.format.AmountFormatQuery)24 MonetaryAmountFormat (javax.money.format.MonetaryAmountFormat)24 Test (org.testng.annotations.Test)23 MonetaryAmount (javax.money.MonetaryAmount)3 CurrencyUnit (javax.money.CurrencyUnit)1 AmountFormatQueryBuilder (javax.money.format.AmountFormatQueryBuilder)1 MonetaryParseException (javax.money.format.MonetaryParseException)1 Ignore (org.testng.annotations.Ignore)1