From 114ebd018c754646408031a55bb2183a8e2285f3 Mon Sep 17 00:00:00 2001 From: Christoph Atteneder Date: Tue, 10 Mar 2020 17:52:05 +0100 Subject: [PATCH] Add an empty dummy exchange rate to prevent warning logs --- .../price/spot/providers/CoinMarketCap.java | 10 ++- .../price/spot/ExchangeRateServiceTest.java | 83 +++++++++++++++++++ 2 files changed, 89 insertions(+), 4 deletions(-) create mode 100644 pricenode/src/test/java/bisq/price/spot/ExchangeRateServiceTest.java diff --git a/pricenode/src/main/java/bisq/price/spot/providers/CoinMarketCap.java b/pricenode/src/main/java/bisq/price/spot/providers/CoinMarketCap.java index 0dc66873a6f..1d99d16e0db 100644 --- a/pricenode/src/main/java/bisq/price/spot/providers/CoinMarketCap.java +++ b/pricenode/src/main/java/bisq/price/spot/providers/CoinMarketCap.java @@ -25,7 +25,7 @@ import java.time.Duration; -import java.util.Collections; +import java.util.HashSet; import java.util.Set; /** @@ -40,14 +40,16 @@ public CoinMarketCap() { } /** - * Returns an empty Set for the CoinMarketCap price provider. + * Returns a Set with a non existing symbol for the CoinMarketCap price provider. * Price data of CMC provider is not used in the client anymore, except for the last update timestamp. + * To prevent a unnecessary warning log in that case we have to pass at least one element. * * @return Empty Set */ @Override public Set doGet() { - - return Collections.emptySet(); + HashSet exchangeRates = new HashSet<>(); + exchangeRates.add(new ExchangeRate("NON_EXISTING_SYMBOL", 0, 0L, "CMC")); + return exchangeRates; } } diff --git a/pricenode/src/test/java/bisq/price/spot/ExchangeRateServiceTest.java b/pricenode/src/test/java/bisq/price/spot/ExchangeRateServiceTest.java new file mode 100644 index 00000000000..b6fe93178c6 --- /dev/null +++ b/pricenode/src/test/java/bisq/price/spot/ExchangeRateServiceTest.java @@ -0,0 +1,83 @@ +/* + * This file is part of Bisq. + * + * Bisq is free software: you can redistribute it and/or modify it + * under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or (at + * your option) any later version. + * + * Bisq is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public + * License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Bisq. If not, see . + */ + +package bisq.price.spot; + +import java.time.Duration; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.HashSet; +import java.util.List; +import java.util.Set; + +import org.junit.Test; + +public class ExchangeRateServiceTest { + + @Test + public void getAllMarketPrices_withNoExchangeRates_logs_Exception() { + ExchangeRateProvider dummyProvider = new ExchangeRateProvider("Dummy", "YUM", Duration.ofDays(1)) { + + @Override + public boolean isRunning() { + return true; + } + + @Override + protected Set doGet() { + return Collections.emptySet(); + } + }; + + dummyProvider.start(); + dummyProvider.stop(); + + List providerList = new ArrayList<>(Collections.singleton(dummyProvider)); + + ExchangeRateService service = new ExchangeRateService(providerList); + + service.getAllMarketPrices(); + } + + @Test + public void getAllMarketPrices_withSingleExchangeRate() { + ExchangeRateProvider dummyProvider = new ExchangeRateProvider("Dummy", "YUM", Duration.ofDays(1)) { + + @Override + public boolean isRunning() { + return true; + } + + @Override + protected Set doGet() { + HashSet exchangeRates = new HashSet<>(); + exchangeRates.add(new ExchangeRate("DUM", 0, 0L, "Dummy")); + return exchangeRates; + } + }; + + dummyProvider.start(); + dummyProvider.stop(); + + List providerList = new ArrayList<>(Collections.singleton(dummyProvider)); + + ExchangeRateService service = new ExchangeRateService(providerList); + + service.getAllMarketPrices(); + } +}