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&currencyPair=" + currencyPair, null,
+                component + ":" + cryptoExchange + 
"?service=marketdata&method=ticker&currencyPair=" + 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")

Reply via email to