Fix HUF currency formatting.

This commit is contained in:
Greyson Parrelli
2026-05-06 13:08:37 -04:00
parent 1f59f3c2c4
commit a8969b34a4
3 changed files with 28 additions and 2 deletions
@@ -29,11 +29,10 @@ data class InAppPaymentReceiptRecord(
@JvmStatic
fun createForSubscription(subscription: ActiveSubscription.Subscription): InAppPaymentReceiptRecord {
val activeCurrency = Currency.getInstance(subscription.currency)
val activeAmount = subscription.amount.movePointLeft(activeCurrency.defaultFractionDigits)
return InAppPaymentReceiptRecord(
id = -1L,
amount = FiatMoney(activeAmount, activeCurrency),
amount = FiatMoney.fromSignalNetworkAmount(subscription.amount, activeCurrency),
timestamp = System.currentTimeMillis(),
subscriptionLevel = subscription.level,
type = if (subscription.level == SubscriptionsConfiguration.BACKUPS_LEVEL) Type.RECURRING_BACKUP else Type.RECURRING_DONATION
@@ -15,6 +15,7 @@ public class FiatMoney {
private static final Set<String> SPECIAL_CASE_MULTIPLICANDS = new HashSet<>() {{
add("UGX");
add("ISK");
add("HUF");
}};
private final BigDecimal amount;
@@ -101,4 +101,30 @@ class FiatMoneyTest {
// THEN
assertEquals("10000", result)
}
@Test
fun given899HUF_whenIGetMinimumUnitPrecisionString_thenIExpect89900() {
// GIVEN
val fiatMoney = FiatMoney(BigDecimal.valueOf(899), Currency.getInstance("HUF"))
// WHEN
val result = fiatMoney.minimumUnitPrecisionString
// THEN
assertEquals("89900", result)
}
@Test
fun given89900NetworkHUF_whenIConvertFromSignalNetworkAmount_thenIExpect899() {
// GIVEN
val amount = BigDecimal.valueOf(89900)
val currency = Currency.getInstance("HUF")
// WHEN
val result = FiatMoney.fromSignalNetworkAmount(amount, currency)
// THEN
assertEquals(BigDecimal.valueOf(899).setScale(2), result.amount.setScale(2))
assertEquals(currency, result.currency)
}
}