Add an empty dummy exchange rate to prevent warning logs

This commit is contained in:
Christoph Atteneder 2020-03-10 17:52:05 +01:00
parent 6c8110aef8
commit 114ebd018c
No known key found for this signature in database
GPG Key ID: CD5DC1C529CDFD3B
2 changed files with 89 additions and 4 deletions

View File

@ -25,7 +25,7 @@ import org.springframework.stereotype.Component;
import java.time.Duration;
import java.util.Collections;
import java.util.HashSet;
import java.util.Set;
/**
@ -40,14 +40,16 @@ class CoinMarketCap extends ExchangeRateProvider {
}
/**
* 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<ExchangeRate> doGet() {
return Collections.emptySet();
HashSet<ExchangeRate> exchangeRates = new HashSet<>();
exchangeRates.add(new ExchangeRate("NON_EXISTING_SYMBOL", 0, 0L, "CMC"));
return exchangeRates;
}
}

View File

@ -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 <http://www.gnu.org/licenses/>.
*/
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<ExchangeRate> doGet() {
return Collections.emptySet();
}
};
dummyProvider.start();
dummyProvider.stop();
List<ExchangeRateProvider> 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<ExchangeRate> doGet() {
HashSet<ExchangeRate> exchangeRates = new HashSet<>();
exchangeRates.add(new ExchangeRate("DUM", 0, 0L, "Dummy"));
return exchangeRates;
}
};
dummyProvider.start();
dummyProvider.stop();
List<ExchangeRateProvider> providerList = new ArrayList<>(Collections.singleton(dummyProvider));
ExchangeRateService service = new ExchangeRateService(providerList);
service.getAllMarketPrices();
}
}