Skip to content

Commit

Permalink
Merge pull request #4043 from ripcurlx/extend-cmc-stub-to-remove-warn…
Browse files Browse the repository at this point in the history
…ing-log

Add an empty dummy exchange rate to prevent warning logs
  • Loading branch information
sqrrm authored Mar 10, 2020
2 parents 6c8110a + 114ebd0 commit ad7cbe6
Show file tree
Hide file tree
Showing 2 changed files with 89 additions and 4 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@

import java.time.Duration;

import java.util.Collections;
import java.util.HashSet;
import java.util.Set;

/**
Expand All @@ -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<ExchangeRate> doGet() {

return Collections.emptySet();
HashSet<ExchangeRate> exchangeRates = new HashSet<>();
exchangeRates.add(new ExchangeRate("NON_EXISTING_SYMBOL", 0, 0L, "CMC"));
return exchangeRates;
}
}
Original file line number Diff line number Diff line change
@@ -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();
}
}

0 comments on commit ad7cbe6

Please sign in to comment.