From 23a72b63ee0e33a4281c49c7657360bc27d51120 Mon Sep 17 00:00:00 2001 From: Dmitri Karpovich Date: Tue, 27 Aug 2024 00:06:21 +0200 Subject: [PATCH] [kraken] Add integration tests --- .../KrakenMarketDataServiceIntegration.java | 70 +++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100644 xchange-kraken/src/test/java/org/knowm/xchange/kraken/service/KrakenMarketDataServiceIntegration.java diff --git a/xchange-kraken/src/test/java/org/knowm/xchange/kraken/service/KrakenMarketDataServiceIntegration.java b/xchange-kraken/src/test/java/org/knowm/xchange/kraken/service/KrakenMarketDataServiceIntegration.java new file mode 100644 index 00000000000..fdb695f278c --- /dev/null +++ b/xchange-kraken/src/test/java/org/knowm/xchange/kraken/service/KrakenMarketDataServiceIntegration.java @@ -0,0 +1,70 @@ +package org.knowm.xchange.kraken.service; + + +import static org.assertj.core.api.Assertions.assertThat; + +import java.io.IOException; +import java.util.List; +import org.junit.Test; +import org.knowm.xchange.ExchangeFactory; +import org.knowm.xchange.currency.CurrencyPair; +import org.knowm.xchange.dto.Order.OrderType; +import org.knowm.xchange.dto.marketdata.OrderBook; +import org.knowm.xchange.dto.marketdata.Ticker; +import org.knowm.xchange.kraken.KrakenExchange; + +public class KrakenMarketDataServiceIntegration { + + KrakenExchange exchange = ExchangeFactory.INSTANCE.createExchange(KrakenExchange.class); + + @Test + public void valid_tickers() throws IOException { + List tickers = exchange.getMarketDataService().getTickers(null); + assertThat(tickers).isNotEmpty(); + + assertThat(tickers).allSatisfy(ticker -> { + assertThat(ticker.getInstrument()).isNotNull(); + assertThat(ticker.getLast()).isNotNull(); + if (ticker.getBid().signum() > 0 && ticker.getAsk().signum() > 0) { + assertThat(ticker.getBid()).isLessThan(ticker.getAsk()); + } + }); + } + + + @Test + public void valid_single_ticker() throws IOException { + Ticker ticker = exchange.getMarketDataService().getTicker(CurrencyPair.BTC_USDT); + + assertThat(ticker.getInstrument()).isEqualTo(CurrencyPair.BTC_USDT); + assertThat(ticker.getLast()).isNotNull(); + + if (ticker.getBid().signum() > 0 && ticker.getAsk().signum() > 0) { + assertThat(ticker.getBid()).isLessThan(ticker.getAsk()); + } + + } + + + @Test + public void valid_orderbook() throws IOException { + OrderBook orderBook = exchange.getMarketDataService().getOrderBook(CurrencyPair.BTC_USDT); + + assertThat(orderBook.getBids()).isNotEmpty(); + assertThat(orderBook.getAsks()).isNotEmpty(); + + assertThat(orderBook.getAsks().get(0).getLimitPrice()).isGreaterThan(orderBook.getBids().get(0).getLimitPrice()); + + assertThat(orderBook.getBids()).allSatisfy(limitOrder -> { + assertThat(limitOrder.getInstrument()).isEqualTo(CurrencyPair.BTC_USDT); + assertThat(limitOrder.getType()).isEqualTo(OrderType.BID); + }); + + assertThat(orderBook.getAsks()).allSatisfy(limitOrder -> { + assertThat(limitOrder.getInstrument()).isEqualTo(CurrencyPair.BTC_USDT); + assertThat(limitOrder.getType()).isEqualTo(OrderType.ASK); + }); + + } + +} \ No newline at end of file