Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add an empty dummy exchange rate to prevent warning logs #4043

Merged
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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();
}
}