killbill-uncached
Changes
invoice/src/main/java/org/killbill/billing/invoice/template/formatters/DefaultInvoiceFormatter.java 5(+0 -5)
Details
diff --git a/invoice/src/main/java/org/killbill/billing/invoice/template/formatters/DefaultInvoiceFormatter.java b/invoice/src/main/java/org/killbill/billing/invoice/template/formatters/DefaultInvoiceFormatter.java
index b580184..b12e189 100644
--- a/invoice/src/main/java/org/killbill/billing/invoice/template/formatters/DefaultInvoiceFormatter.java
+++ b/invoice/src/main/java/org/killbill/billing/invoice/template/formatters/DefaultInvoiceFormatter.java
@@ -363,11 +363,6 @@ public class DefaultInvoiceFormatter implements InvoiceFormatter {
return invoice;
}
- @SuppressWarnings("UnusedDeclaration")
- protected Map<java.util.Currency, Locale> getCurrencyLocaleMap() {
- return currencyLocaleMap;
- }
-
@Override
public BigDecimal getCreditedAmount() {
return MoreObjects.firstNonNull(invoice.getCreditedAmount(), BigDecimal.ZERO);
diff --git a/invoice/src/main/java/org/killbill/billing/invoice/template/formatters/DefaultInvoiceFormatterFactory.java b/invoice/src/main/java/org/killbill/billing/invoice/template/formatters/DefaultInvoiceFormatterFactory.java
index 6496df7..b9e405b 100644
--- a/invoice/src/main/java/org/killbill/billing/invoice/template/formatters/DefaultInvoiceFormatterFactory.java
+++ b/invoice/src/main/java/org/killbill/billing/invoice/template/formatters/DefaultInvoiceFormatterFactory.java
@@ -29,22 +29,31 @@ import org.killbill.billing.invoice.api.formatters.InvoiceFormatterFactory;
import org.killbill.billing.invoice.api.formatters.ResourceBundleFactory;
import org.killbill.billing.util.template.translation.TranslatorConfig;
+import com.google.common.annotations.VisibleForTesting;
+
public class DefaultInvoiceFormatterFactory implements InvoiceFormatterFactory {
- @Override
- public InvoiceFormatter createInvoiceFormatter(final TranslatorConfig config, final Invoice invoice, final Locale locale, CurrencyConversionApi currencyConversionApi,
- final ResourceBundleFactory bundleFactory, final InternalTenantContext context) {
+ private final Map<Currency, Locale> currencyLocaleMap = new HashMap<Currency, Locale>();
- // this initialization relies on System.currentTimeMillis() instead of the Kill Bill clock (it won't be accurate when moving the clock)
- Map<Currency, Locale> currencyLocaleMap = new HashMap<Currency, Locale>();
- for (Locale localeItem : Locale.getAvailableLocales()) {
+ public DefaultInvoiceFormatterFactory() {
+ // This initialization relies on System.currentTimeMillis() instead of the Kill Bill clock (it won't be accurate when moving the clock)
+ for (final Locale localeItem : Locale.getAvailableLocales()) {
try {
- java.util.Currency currency = java.util.Currency.getInstance(localeItem);
+ final java.util.Currency currency = java.util.Currency.getInstance(localeItem);
currencyLocaleMap.put(currency, localeItem);
- }catch (Exception e){
+ } catch (final Exception ignored) {
}
}
+ }
+ @Override
+ public InvoiceFormatter createInvoiceFormatter(final TranslatorConfig config, final Invoice invoice, final Locale locale, final CurrencyConversionApi currencyConversionApi,
+ final ResourceBundleFactory bundleFactory, final InternalTenantContext context) {
return new DefaultInvoiceFormatter(config, invoice, locale, currencyConversionApi, bundleFactory, context, currencyLocaleMap);
}
+
+ @VisibleForTesting
+ Map<Currency, Locale> getCurrencyLocaleMap() {
+ return currencyLocaleMap;
+ }
}
diff --git a/invoice/src/test/java/org/killbill/billing/invoice/template/formatters/TestDefaultInvoiceFormatter.java b/invoice/src/test/java/org/killbill/billing/invoice/template/formatters/TestDefaultInvoiceFormatter.java
index 3f1b7d0..67065b7 100644
--- a/invoice/src/test/java/org/killbill/billing/invoice/template/formatters/TestDefaultInvoiceFormatter.java
+++ b/invoice/src/test/java/org/killbill/billing/invoice/template/formatters/TestDefaultInvoiceFormatter.java
@@ -54,12 +54,14 @@ public class TestDefaultInvoiceFormatter extends InvoiceTestSuiteNoDB {
private TranslatorConfig config;
private MustacheTemplateEngine templateEngine;
+ private DefaultInvoiceFormatterFactory defaultInvoiceFormatterFactory;
@BeforeClass(groups = "fast")
public void beforeClass() throws Exception {
super.beforeClass();
config = new ConfigurationObjectFactory(skifeConfigSource).build(TranslatorConfig.class);
templateEngine = new MustacheTemplateEngine();
+ defaultInvoiceFormatterFactory = new DefaultInvoiceFormatterFactory();
}
@Test(groups = "fast")
@@ -88,7 +90,7 @@ public class TestDefaultInvoiceFormatter extends InvoiceTestSuiteNoDB {
Assert.assertEquals(invoice.getCreditedAmount().doubleValue(), 0.00);
// Verify the merge
- final InvoiceFormatter formatter = new DefaultInvoiceFormatter(config, invoice, Locale.US, null, resourceBundleFactory, internalCallContext, getAvailableLocales());
+ final InvoiceFormatter formatter = new DefaultInvoiceFormatter(config, invoice, Locale.US, null, resourceBundleFactory, internalCallContext, defaultInvoiceFormatterFactory.getCurrencyLocaleMap());
final List<InvoiceItem> invoiceItems = formatter.getInvoiceItems();
Assert.assertEquals(invoiceItems.size(), 1);
Assert.assertEquals(invoiceItems.get(0).getInvoiceItemType(), InvoiceItemType.FIXED);
@@ -142,7 +144,7 @@ public class TestDefaultInvoiceFormatter extends InvoiceTestSuiteNoDB {
Assert.assertEquals(invoice.getRefundedAmount().doubleValue(), -1.00);
// Verify the merge
- final InvoiceFormatter formatter = new DefaultInvoiceFormatter(config, invoice, Locale.US, null, resourceBundleFactory, internalCallContext, getAvailableLocales());
+ final InvoiceFormatter formatter = new DefaultInvoiceFormatter(config, invoice, Locale.US, null, resourceBundleFactory, internalCallContext, defaultInvoiceFormatterFactory.getCurrencyLocaleMap());
final List<InvoiceItem> invoiceItems = formatter.getInvoiceItems();
Assert.assertEquals(invoiceItems.size(), 4);
Assert.assertEquals(invoiceItems.get(0).getInvoiceItemType(), InvoiceItemType.FIXED);
@@ -478,7 +480,7 @@ public class TestDefaultInvoiceFormatter extends InvoiceTestSuiteNoDB {
data.put("text", translator);
- data.put("invoice", new DefaultInvoiceFormatter(config, invoice, Locale.US, currencyConversionApi, resourceBundleFactory, internalCallContext, getAvailableLocales()));
+ data.put("invoice", new DefaultInvoiceFormatter(config, invoice, Locale.US, currencyConversionApi, resourceBundleFactory, internalCallContext, defaultInvoiceFormatterFactory.getCurrencyLocaleMap()));
final String formattedText = templateEngine.executeTemplateText(template, data);
@@ -487,23 +489,9 @@ public class TestDefaultInvoiceFormatter extends InvoiceTestSuiteNoDB {
private void checkOutput(final Invoice invoice, final String template, final String expected, final Locale locale) {
final Map<String, Object> data = new HashMap<String, Object>();
- data.put("invoice", new DefaultInvoiceFormatter(config, invoice, locale, null, resourceBundleFactory, internalCallContext, getAvailableLocales()));
+ data.put("invoice", new DefaultInvoiceFormatter(config, invoice, locale, null, resourceBundleFactory, internalCallContext, defaultInvoiceFormatterFactory.getCurrencyLocaleMap()));
final String formattedText = templateEngine.executeTemplateText(template, data);
Assert.assertEquals(formattedText, expected);
}
-
- private Map<java.util.Currency, Locale> getAvailableLocales() {
- Map<java.util.Currency, Locale> currencyLocaleMap = new HashMap<java.util.Currency, Locale>();
-
- currencyLocaleMap.put(java.util.Currency.getInstance(Locale.US), Locale.US);
- currencyLocaleMap.put(java.util.Currency.getInstance(Locale.FRANCE), Locale.FRANCE);
- currencyLocaleMap.put(java.util.Currency.getInstance(Locale.JAPAN), Locale.JAPAN);
- currencyLocaleMap.put(java.util.Currency.getInstance(Locale.UK), Locale.UK);
- Locale brLocale = new Locale("pt", "BR");
- currencyLocaleMap.put(java.util.Currency.getInstance(brLocale), brLocale);
-
- return currencyLocaleMap;
- }
-
}