From 5763e9009adb1ec7bb1ff5d83c9223bcf3b949d7 Mon Sep 17 00:00:00 2001 From: Q1nt Date: Fri, 6 Jul 2018 14:01:16 +0300 Subject: [PATCH] Add exchange-rates-client fallback implementation Added exchange-rates-client fallback implementation, which returns empty ExchangeRatesContainer. --- .../client/ExchangeRatesClient.java | 2 +- .../client/ExchangeRatesClientFallback.java | 19 +++++++++++++++++++ .../client/ExchangeRatesClientTest.java | 3 +-- 3 files changed, 21 insertions(+), 3 deletions(-) create mode 100644 statistics-service/src/main/java/com/piggymetrics/statistics/client/ExchangeRatesClientFallback.java diff --git a/statistics-service/src/main/java/com/piggymetrics/statistics/client/ExchangeRatesClient.java b/statistics-service/src/main/java/com/piggymetrics/statistics/client/ExchangeRatesClient.java index 760aa5a0e9..1a68024080 100644 --- a/statistics-service/src/main/java/com/piggymetrics/statistics/client/ExchangeRatesClient.java +++ b/statistics-service/src/main/java/com/piggymetrics/statistics/client/ExchangeRatesClient.java @@ -7,7 +7,7 @@ import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RequestParam; -@FeignClient(url = "${rates.url}", name = "rates-client") +@FeignClient(url = "${rates.url}", name = "rates-client", fallback = ExchangeRatesClientFallback.class) public interface ExchangeRatesClient { @RequestMapping(method = RequestMethod.GET, value = "/latest") diff --git a/statistics-service/src/main/java/com/piggymetrics/statistics/client/ExchangeRatesClientFallback.java b/statistics-service/src/main/java/com/piggymetrics/statistics/client/ExchangeRatesClientFallback.java new file mode 100644 index 0000000000..dbc61a1396 --- /dev/null +++ b/statistics-service/src/main/java/com/piggymetrics/statistics/client/ExchangeRatesClientFallback.java @@ -0,0 +1,19 @@ +package com.piggymetrics.statistics.client; + +import com.piggymetrics.statistics.domain.Currency; +import com.piggymetrics.statistics.domain.ExchangeRatesContainer; +import org.springframework.stereotype.Component; + +import java.util.Collections; + +@Component +public class ExchangeRatesClientFallback implements ExchangeRatesClient { + + @Override + public ExchangeRatesContainer getRates(Currency base) { + ExchangeRatesContainer container = new ExchangeRatesContainer(); + container.setBase(Currency.getBase()); + container.setRates(Collections.emptyMap()); + return container; + } +} diff --git a/statistics-service/src/test/java/com/piggymetrics/statistics/client/ExchangeRatesClientTest.java b/statistics-service/src/test/java/com/piggymetrics/statistics/client/ExchangeRatesClientTest.java index cbff17259a..45624fe256 100644 --- a/statistics-service/src/test/java/com/piggymetrics/statistics/client/ExchangeRatesClientTest.java +++ b/statistics-service/src/test/java/com/piggymetrics/statistics/client/ExchangeRatesClientTest.java @@ -29,8 +29,7 @@ public void shouldRetrieveExchangeRates() { assertEquals(container.getDate(), LocalDate.now()); assertEquals(container.getBase(), Currency.getBase()); - assertNotNull(container.getRates().get(Currency.EUR.name())); - assertNotNull(container.getRates().get(Currency.RUB.name())); + assertNotNull(container.getRates()); } } \ No newline at end of file