This is an automated email from the ASF dual-hosted git repository. jamesnetherton pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/camel-quarkus.git
The following commit(s) were added to refs/heads/main by this push: new 2556689 Reinstate binance in xchange tests 2556689 is described below commit 2556689d070c592335f26f4a084a55353ab60108 Author: James Netherton <jamesnether...@gmail.com> AuthorDate: Wed Sep 15 15:07:46 2021 +0100 Reinstate binance in xchange tests Fixes #3016 --- .../component/xchange/it/XchangeResource.java | 21 ++++++++++++++++----- .../quarkus/component/xchange/it/XchangeTest.java | 6 ++---- 2 files changed, 18 insertions(+), 9 deletions(-) diff --git a/integration-tests/xchange/src/main/java/org/apache/camel/quarkus/component/xchange/it/XchangeResource.java b/integration-tests/xchange/src/main/java/org/apache/camel/quarkus/component/xchange/it/XchangeResource.java index e121b8d..e79642b 100644 --- a/integration-tests/xchange/src/main/java/org/apache/camel/quarkus/component/xchange/it/XchangeResource.java +++ b/integration-tests/xchange/src/main/java/org/apache/camel/quarkus/component/xchange/it/XchangeResource.java @@ -20,6 +20,7 @@ import java.util.List; import javax.enterprise.context.ApplicationScoped; import javax.inject.Inject; +import javax.inject.Named; import javax.json.Json; import javax.json.JsonArrayBuilder; import javax.json.JsonObject; @@ -31,6 +32,7 @@ import javax.ws.rs.QueryParam; import javax.ws.rs.core.MediaType; import org.apache.camel.ProducerTemplate; +import org.apache.camel.component.xchange.XChangeComponent; import org.knowm.xchange.currency.Currency; import org.knowm.xchange.currency.CurrencyPair; import org.knowm.xchange.dto.marketdata.Ticker; @@ -41,9 +43,7 @@ import org.knowm.xchange.dto.meta.CurrencyPairMetaData; @ApplicationScoped public class XchangeResource { - // TODO: Reinstate binance as the default crypto exchange and kraken as the secondary - // https://github.com/apache/camel-quarkus/issues/3016 - public static final String DEFAULT_CRYPTO_EXCHANGE = "kraken"; + public static final String DEFAULT_CRYPTO_EXCHANGE = "binance"; @Inject ProducerTemplate producerTemplate; @@ -51,10 +51,14 @@ public class XchangeResource { @Path("/ticker/{exchange}") @GET @Produces(MediaType.APPLICATION_JSON) - public JsonObject currencyTicker(@PathParam("exchange") String cryptoExchange, + public JsonObject currencyTicker( + @PathParam("exchange") String cryptoExchange, @QueryParam("currencyPair") String currencyPair) { + + String component = cryptoExchange.equals(DEFAULT_CRYPTO_EXCHANGE) ? "xchange" : "xchange-" + cryptoExchange; + Ticker ticker = producerTemplate.requestBody( - "xchange:" + cryptoExchange + "?service=marketdata&method=ticker¤cyPair=" + currencyPair, null, + component + ":" + cryptoExchange + "?service=marketdata&method=ticker¤cyPair=" + currencyPair, null, Ticker.class); return Json.createObjectBuilder() .add("last", ticker.getLast().longValue()) @@ -109,4 +113,11 @@ public class XchangeResource { CurrencyPairMetaData.class); return metaData.getTradingFee().toPlainString(); } + + @Named("xchange-kraken") + public XChangeComponent xChangeComponent() { + // We are forced to create a dedicated component instance to work with multiple crypto exchanges + // https://issues.apache.org/jira/browse/CAMEL-16978 + return new XChangeComponent(); + } } diff --git a/integration-tests/xchange/src/test/java/org/apache/camel/quarkus/component/xchange/it/XchangeTest.java b/integration-tests/xchange/src/test/java/org/apache/camel/quarkus/component/xchange/it/XchangeTest.java index 30c5c91..cc3522d 100644 --- a/integration-tests/xchange/src/test/java/org/apache/camel/quarkus/component/xchange/it/XchangeTest.java +++ b/integration-tests/xchange/src/test/java/org/apache/camel/quarkus/component/xchange/it/XchangeTest.java @@ -22,6 +22,7 @@ import org.junit.jupiter.api.Test; import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.ValueSource; +import static org.apache.camel.quarkus.component.xchange.it.XchangeResource.DEFAULT_CRYPTO_EXCHANGE; import static org.hamcrest.Matchers.emptyOrNullString; import static org.hamcrest.Matchers.greaterThan; import static org.hamcrest.Matchers.hasItems; @@ -30,11 +31,8 @@ import static org.hamcrest.Matchers.not; @QuarkusTest class XchangeTest { - // TODO: Reinstate binance as the default crypto exchange and kraken as the secondary - // https://github.com/apache/camel-quarkus/issues/3016 - // @ValueSource(strings = { DEFAULT_CRYPTO_EXCHANGE, "kraken" }) @ParameterizedTest - @ValueSource(strings = { "kraken" }) + @ValueSource(strings = { DEFAULT_CRYPTO_EXCHANGE, "kraken" }) public void currencyTicker(String cryptoExchange) { RestAssured.given() .queryParam("currencyPair", "BTC/USDT")