mirror of
https://github.com/signalapp/Signal-Server
synced 2026-04-22 00:08:07 +01:00
Trigger pub/sub events for one-time donations via Braintree (PayPal)
This commit is contained in:
committed by
Jon Chambers
parent
516c481e94
commit
8999f0104f
@@ -321,7 +321,7 @@ class SubscriptionControllerTest {
|
||||
void confirmPaypalBoostProcessorError() {
|
||||
|
||||
when(BRAINTREE_MANAGER.captureOneTimePayment(anyString(), anyString(), anyString(), anyString(), anyLong(),
|
||||
anyLong()))
|
||||
anyLong(), any()))
|
||||
.thenReturn(CompletableFuture.failedFuture(new SubscriptionProcessorException(SubscriptionProcessor.BRAINTREE,
|
||||
new ChargeFailure("2046", "Declined", null, null, null))));
|
||||
|
||||
|
||||
@@ -6,6 +6,7 @@
|
||||
package org.whispersystems.textsecuregcm.currency;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||
import static org.mockito.ArgumentMatchers.eq;
|
||||
import static org.mockito.Mockito.mock;
|
||||
import static org.mockito.Mockito.when;
|
||||
@@ -15,13 +16,16 @@ import java.math.BigDecimal;
|
||||
import java.time.Clock;
|
||||
import java.time.Instant;
|
||||
import java.time.temporal.ChronoUnit;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Optional;
|
||||
import java.util.concurrent.Executors;
|
||||
import java.util.concurrent.ScheduledExecutorService;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.junit.jupiter.api.extension.RegisterExtension;
|
||||
import org.whispersystems.textsecuregcm.entities.CurrencyConversionEntityList;
|
||||
import org.whispersystems.textsecuregcm.redis.FaultTolerantRedisCluster;
|
||||
import org.whispersystems.textsecuregcm.redis.RedisClusterExtension;
|
||||
|
||||
class CurrencyConversionManagerTest {
|
||||
@@ -232,4 +236,30 @@ class CurrencyConversionManagerTest {
|
||||
assertThat(conversions.getCurrencies().get(0).getConversions().get("FKP")).isEqualTo(new BigDecimal("1.7470981"));
|
||||
}
|
||||
|
||||
@Test
|
||||
void convertToUsd() {
|
||||
final CurrencyConversionManager currencyConversionManager = new CurrencyConversionManager(mock(FixerClient.class),
|
||||
mock(CoinMarketCapClient.class),
|
||||
mock(FaultTolerantRedisCluster.class),
|
||||
Collections.emptyList(),
|
||||
EXECUTOR,
|
||||
Clock.systemUTC());
|
||||
|
||||
currencyConversionManager.setCachedFixerValues(Map.of("JPY", BigDecimal.valueOf(154.757008), "GBP", BigDecimal.valueOf(0.81196)));
|
||||
|
||||
assertEquals(Optional.of(new BigDecimal("17.50")),
|
||||
currencyConversionManager.convertToUsd(new BigDecimal("17.50"), "USD"));
|
||||
|
||||
assertEquals(Optional.of(new BigDecimal("17.50")),
|
||||
currencyConversionManager.convertToUsd(new BigDecimal("17.50"), "usd"));
|
||||
|
||||
assertEquals(Optional.empty(),
|
||||
currencyConversionManager.convertToUsd(new BigDecimal("10.00"), "XYZ"));
|
||||
|
||||
assertEquals(Optional.of(new BigDecimal("12.92")),
|
||||
currencyConversionManager.convertToUsd(new BigDecimal("2000"), "JPY"));
|
||||
|
||||
assertEquals(Optional.of(new BigDecimal("12.32")),
|
||||
currencyConversionManager.convertToUsd(new BigDecimal("10"), "GBP"));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -17,6 +17,7 @@ import java.time.Duration;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import java.util.concurrent.Executors;
|
||||
import com.google.cloud.pubsub.v1.Publisher;
|
||||
import org.junit.jupiter.api.BeforeEach;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.whispersystems.textsecuregcm.currency.CurrencyConversionManager;
|
||||
@@ -34,6 +35,7 @@ class BraintreeManagerTest {
|
||||
Map.of("usd", "usdMerchant"),
|
||||
mock(BraintreeGraphqlClient.class),
|
||||
mock(CurrencyConversionManager.class),
|
||||
mock(Publisher.class),
|
||||
Executors.newSingleThreadExecutor());
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user