/** * Test for custom Monetary provided, based on the TCK * TestProvider. */ @Test(description = "4.2.7 Test if Monetary provides customized locale identified currencies.") @SpecAssertion(section = "4.2.7", id = "427-A5") public void testCustomCurrencies() { Locale testLocale = new Locale("lang", "count", "test"); Set<CurrencyUnit> cus = Monetary.getCurrencies(testLocale); AssertJUnit.assertNotNull("Section 4.2.7: TestCurrency not returned for locale: " + testLocale, cus); AssertJUnit.assertFalse("Section 4.2.7: TestCurrency not returned for locale: " + testLocale, cus.isEmpty()); AssertJUnit.assertEquals("Section 4.2.7: Unexpected CurrencyUnit class returned.", TestCurrencyUnit.class, cus.iterator().next().getClass()); CurrencyUnit cu = Monetary.getCurrency("FOOLS_test"); AssertJUnit.assertNotNull("Section 4.2.7: TestCurrency not returned for currency code: FOOLS_test", cu); AssertJUnit.assertEquals("Section 4.2.7: Unexpected CurrencyUnit class returned.", TestCurrencyUnit.class, cu.getClass()); }
/** * Test access to conversion rates.<p> * Hint: this assertion will require multiple tests to be written! */ @Test(description = "4.3.3 Test access to identity conversion rate for CurrencyUnits, using default provider") @SpecAssertion(id = "433-A1", section = "4.3.3") public void testAccessRates_IdentityRatesWithUnits() { ExchangeRateProvider prov = MonetaryConversions.getExchangeRateProvider(); // Use default provider for (CurrencyUnit unit : Monetary.getCurrencies()) { ExchangeRate rate = prov.getExchangeRate(unit, unit); AssertJUnit.assertNotNull( "Identity rate, accessed by getExchangeRate(CurrencyUnit, CurrencyUnit), is not defined for " + unit.getCurrencyCode(), rate); } }
AssertJUnit .assertNotNull("Currency null [Monetary#igetCurrency(Locale)] for locale: " + locale, Monetary.getCurrencies(locale)); Collection<CurrencyUnit> units = Monetary.getCurrencies(locale); CurrencyUnit requiredCurrency = null; for (CurrencyUnit cu : units) {
public void testCorrectLocales() { Monetary.getCurrencies(new Locale("", "AD")); continue; Set<CurrencyUnit> units = Monetary.getCurrencies(locale); AssertJUnit.assertNotNull( "Section 4.2.7: Invalid Currencies (null) returned from [Monetary#igetCurrencies" +
/** * Test access to conversion rates.<p> * Hint: this assertion will require multiple tests to be written! */ @Test(description = "4.3.3 Test access to conversion rate for currency codes, using default provider.") @SpecAssertion(id = "433-A1", section = "4.3.3") public void testAccessRates_IdentityRatesWithCodes() { ExchangeRateProvider prov = MonetaryConversions.getExchangeRateProvider(); // Use default provider for (CurrencyUnit unit : Monetary.getCurrencies()) { ExchangeRate rate = prov.getExchangeRate(unit.getCurrencyCode(), unit.getCurrencyCode()); AssertJUnit.assertNotNull( "Identity rate, accessed by getExchangeRate(String, String), is not defined for " + unit.getCurrencyCode(), rate); } }
/** * Format several amounts, created using the default factory, * but * also a test instance, provided by the TCK, to ensure no * implementation * dependencies on the implementation. */ @SpecAssertion(section = "4.4.1", id = "441-A1") @Test(description = "4.4.1 Ensures the system.s default locale is supported for MonetaryAmountFormat.") public void testNoDepOnAmountImplementation() { final Locale defaultLocale = Locale.getDefault(); MonetaryAmountFormat amountFormat = MonetaryFormats.getAmountFormat(defaultLocale); final Number[] values = new Number[]{100, 10000000000000L}; for (CurrencyUnit currency : Monetary.getCurrencies()) { for (Number value : values) { MonetaryAmount amount = Monetary.getDefaultAmountFactory().setCurrency(currency.getCurrencyCode()) .setNumber(value).create(); String formattedAmount = amountFormat.format(amount); MonetaryAmount amountMock = TestMonetaryAmountBuilder.getAmount(value, currency); String formattedAmountMock = amountFormat.format(amountMock); AssertJUnit.assertNotNull(formattedAmountMock); assertEquals(formattedAmountMock, formattedAmount); } } }
/** * Test access to conversion rates.<p> * Hint: this assertion will require multiple tests to be written! */ @Test(description = "4.3.3 Test access to conversion rate for CurrencyQuery, using default provider.") @SpecAssertion(id = "433-A1", section = "4.3.3") public void testAccessRates_IdentityRatesWithUnitsAndContext() { ExchangeRateProvider prov = MonetaryConversions.getExchangeRateProvider(); // Use default provider for (CurrencyUnit unit : Monetary.getCurrencies()) { ExchangeRate rate = prov.getExchangeRate( ConversionQueryBuilder.of().setBaseCurrency(unit).setTermCurrency(unit).build()); AssertJUnit.assertNotNull("Identity rate, accessed by getExchangeRate(ConversionQuery), " + "is not defined for " + unit.getCurrencyCode(), rate); } }
/** * Test access to conversion rates.<p> * Hint: this assertion will require multiple tests to be written! */ @Test(description = "4.3.3 Test access of Conversion Rates, using TCK provided rate provider.") @SpecAssertion(id = "433-A1", section = "4.3.3") public void testAccessKnownRates() { ExchangeRateProvider prov = MonetaryConversions.getExchangeRateProvider("TestRateProvider"); // Use test provider for (CurrencyUnit base : Monetary.getCurrencies()) { if (base.equals(FOO_UNIT)) { continue; } ExchangeRate rate = prov.getExchangeRate(base, FOO_UNIT); AssertJUnit.assertNotNull( "Identity rate, accessed by getExchangeRate(CurrencyUnit, CurrencyUnit), is not defined for " + base.getCurrencyCode() + " -> " + FOO_UNIT.getCurrencyCode()); AssertJUnit.assertEquals(rate.getBaseCurrency().getCurrencyCode(), base.getCurrencyCode()); AssertJUnit.assertEquals(rate.getCurrency().getCurrencyCode(), FOO_UNIT.getCurrencyCode()); AssertJUnit.assertEquals(rate.getFactor().intValueExact(), 2); } }
/** * Test access to conversion rates.<p> * Hint: this assertion will require multiple tests to be written! */ @Test(description = "4.3.3 Test access to exchange rates from TestRateProvider, using target currency code.") @SpecAssertion(id = "433-A1", section = "4.3.3") public void testAccessKnownRatesWithCodes() { ExchangeRateProvider prov = MonetaryConversions.getExchangeRateProvider("TestRateProvider"); // Use test provider for (CurrencyUnit base : Monetary.getCurrencies()) { if (base.equals(FOO_UNIT)) { continue; } ExchangeRate rate = prov.getExchangeRate(base.getCurrencyCode(), "XXX"); AssertJUnit .assertNotNull("Identity rate, accessed by getExchangeRate(String, String), is not defined for " + base.getCurrencyCode() + " -> " + FOO_UNIT.getCurrencyCode(), rate); AssertJUnit.assertEquals(rate.getBaseCurrency().getCurrencyCode(), base.getCurrencyCode()); AssertJUnit.assertEquals(rate.getCurrency().getCurrencyCode(), "FOO"); AssertJUnit.assertEquals(rate.getFactor().intValueExact(), 2); } }
/** * Test access to conversion rates.<p> * Hint: this assertion will require multiple tests to be written! */ @Test(description = "4.3.3 Test access to exchange rates from TestRateProvider, using target CUrrencyUnit.") @SpecAssertion(id = "433-A1", section = "4.3.3") public void testAccessKnownRatesAndContext() { ExchangeRateProvider prov = MonetaryConversions.getExchangeRateProvider("TestRateProvider"); // Use test provider for (CurrencyUnit base : Monetary.getCurrencies()) { if (base.equals(FOO_UNIT)) { continue; } ExchangeRate rate = prov.getExchangeRate(base, FOO_UNIT); AssertJUnit.assertNotNull( "Identity rate, accessed by getExchangeRate(CurrencyUnit, CurrencyUnit, ConversionContext), " + "is not defined for " + base.getCurrencyCode() + " -> " + FOO_UNIT.getCurrencyCode()); AssertJUnit.assertEquals(rate.getBaseCurrency().getCurrencyCode(), base.getCurrencyCode()); AssertJUnit.assertEquals(rate.getCurrency().getCurrencyCode(), FOO_UNIT.getCurrencyCode()); AssertJUnit.assertEquals(rate.getFactor().intValueExact(), 2); } }
/** * Test access to conversion rates.<p> * Hint: this assertion will require multiple tests to be written! */ @Test(description = "4.3.3 Test access to conversion rates, including known factor, using TestRateProvider.") @SpecAssertion(id = "433-A1", section = "4.3.3") public void testAccessKnownRatesWithCodesAndContext() { ExchangeRateProvider prov = MonetaryConversions.getExchangeRateProvider("TestRateProvider"); // Use test provider for (CurrencyUnit base : Monetary.getCurrencies()) { ExchangeRate rate = prov.getExchangeRate(base, FOO_UNIT); AssertJUnit .assertNotNull("Identity rate, accessed by getExchangeRate(String, String, ConversionContext), " + "is not defined for " + base.getCurrencyCode() + " -> " + FOO_UNIT.getCurrencyCode(), rate); AssertJUnit.assertEquals(rate.getBaseCurrency().getCurrencyCode(), base.getCurrencyCode()); AssertJUnit.assertEquals(rate.getCurrency().getCurrencyCode(), FOO_UNIT.getCurrencyCode()); AssertJUnit.assertEquals(rate.getFactor().intValueExact(), 2); } }