Missing Money.nanos should be treated as 0

This commit is contained in:
Ravi Khadiwala
2025-09-08 15:11:15 -05:00
committed by ravi-signal
parent b2dd315177
commit efde8a31f9
2 changed files with 35 additions and 1 deletions

View File

@@ -0,0 +1,32 @@
/*
* Copyright 2025 Signal Messenger, LLC
* SPDX-License-Identifier: AGPL-3.0-only
*/
package org.whispersystems.textsecuregcm.subscriptions;
import com.google.api.services.androidpublisher.model.Money;
import org.assertj.core.api.Assertions;
import org.assertj.core.data.Percentage;
import org.junit.jupiter.api.Test;
import java.math.BigDecimal;
import static org.junit.jupiter.api.Assertions.*;
class SubscriptionCurrencyUtilTest {
@Test
void convertGoogleMoneyToApiAmount() {
Money money = new Money();
money.setCurrencyCode("USD");
money.setUnits(4L);
BigDecimal amt = SubscriptionCurrencyUtil.convertGoogleMoneyToApiAmount(money);
Assertions.assertThat(amt).isCloseTo(BigDecimal.valueOf(400), Percentage.withPercentage(0.0001));
money.setNanos(990000000);
amt = SubscriptionCurrencyUtil.convertGoogleMoneyToApiAmount(money);
Assertions.assertThat(amt).isCloseTo(BigDecimal.valueOf(499), Percentage.withPercentage(0.0001));
}
}