Skip to content

Commit

Permalink
Coinbase's integration tests working #879
Browse files Browse the repository at this point in the history
  • Loading branch information
straumat committed Jan 17, 2022
1 parent ddb4405 commit 1c14204
Show file tree
Hide file tree
Showing 3 changed files with 36 additions and 41 deletions.
3 changes: 3 additions & 0 deletions spring-boot-starter/autoconfigure/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -381,6 +381,9 @@
</properties>
<reuseForks>false</reuseForks>
<forkCount>1</forkCount>
<includes>
<include>**/integration/**</include>
</includes>
<excludes>
<exclude>**/core/**</exclude>
<exclude>**/issues/**</exclude>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,9 @@
import tech.cassandre.trading.bot.dto.util.CurrencyPairDTO;
import tech.cassandre.trading.bot.service.MarketService;

import java.util.Collections;
import java.util.Optional;
import java.util.Set;

import static java.math.BigDecimal.ZERO;
import static org.junit.jupiter.api.Assertions.assertEquals;
Expand Down Expand Up @@ -52,41 +54,36 @@ public class MarketServiceTest {
@DisplayName("Check get ticker")
public void checkGetTicker() {
CurrencyPairDTO cp = new CurrencyPairDTO(ETH, BTC);
Optional<TickerDTO> t = marketService.getTicker(cp);
assertTrue(t.isPresent());
Set<TickerDTO> tickers = marketService.getTickers(Collections.singleton(cp));
assertEquals(7, tickers.size());

final Optional<TickerDTO> ethBtcTicker = tickers.stream().filter(tickerDTO -> tickerDTO.getCurrencyPair().equals(cp)).findFirst();
assertTrue(ethBtcTicker.isPresent());
System.out.println(ethBtcTicker);
// currencyPair.
assertNotNull(t.get().getCurrencyPair());
assertEquals(t.get().getCurrencyPair(), cp);
// open.
assertNotNull(t.get().getOpen());
assertTrue(t.get().getOpen().compareTo(ZERO) > 0);
assertNotNull(ethBtcTicker.get().getCurrencyPair());
assertEquals(cp, ethBtcTicker.get().getCurrencyPair());
// last.
assertNotNull(t.get().getLast());
assertTrue(t.get().getLast().compareTo(ZERO) > 0);
// bid.
assertNotNull(t.get().getBid());
assertTrue(t.get().getBid().compareTo(ZERO) > 0);
// ask.
assertNotNull(t.get().getAsk());
assertTrue(t.get().getAsk().compareTo(ZERO) > 0);
assertNotNull(ethBtcTicker.get().getLast());
assertTrue(ethBtcTicker.get().getLast().compareTo(ZERO) > 0);
// high.
assertNotNull(t.get().getHigh());
assertTrue(t.get().getHigh().compareTo(ZERO) > 0);
assertNotNull(ethBtcTicker.get().getHigh());
assertTrue(ethBtcTicker.get().getHigh().compareTo(ZERO) > 0);
// low.
assertNotNull(t.get().getLow());
assertTrue(t.get().getLow().compareTo(ZERO) > 0);
assertNotNull(ethBtcTicker.get().getLow());
assertTrue(ethBtcTicker.get().getLow().compareTo(ZERO) > 0);
// volume.
assertNotNull(t.get().getVolume());
assertTrue(t.get().getVolume().compareTo(ZERO) > 0);
assertNotNull(ethBtcTicker.get().getVolume());
assertTrue(ethBtcTicker.get().getVolume().compareTo(ZERO) > 0);
// quote volume.
assertNotNull(t.get().getQuoteVolume());
assertTrue(t.get().getQuoteVolume().compareTo(ZERO) > 0);
assertNotNull(ethBtcTicker.get().getQuoteVolume());
assertTrue(ethBtcTicker.get().getQuoteVolume().compareTo(ZERO) > 0);
// bidSize.
assertNull(t.get().getBidSize());
assertNull(ethBtcTicker.get().getBidSize());
// askSize.
assertNull(t.get().getAskSize());
assertNull(ethBtcTicker.get().getAskSize());
// timestamp.
assertNotNull(t.get().getTimestamp());
assertNotNull(ethBtcTicker.get().getTimestamp());
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,6 @@
import java.math.BigDecimal;
import java.time.ZonedDateTime;
import java.util.Optional;
import java.util.concurrent.TimeUnit;

import static org.awaitility.Awaitility.await;
import static org.junit.jupiter.api.Assertions.assertEquals;
Expand All @@ -31,6 +30,7 @@
import static tech.cassandre.trading.bot.dto.trade.OrderTypeDTO.BID;
import static tech.cassandre.trading.bot.dto.util.CurrencyDTO.BTC;
import static tech.cassandre.trading.bot.dto.util.CurrencyDTO.ETH;
import static tech.cassandre.trading.bot.dto.util.CurrencyDTO.USD;

@SpringBootTest
@ActiveProfiles("schedule-disabled")
Expand Down Expand Up @@ -137,12 +137,12 @@ public void checkCreateBuyLimitOrder() {
@Test
@Tag("integration")
@DisplayName("Check cancel an order")
@Disabled("Not supported by coinbase")
@Disabled("Not supported by Coinbase")
public void checkCancelOrder() {
final CurrencyPairDTO cp = new CurrencyPairDTO(ETH, BTC);
final CurrencyPairDTO cp = new CurrencyPairDTO(BTC, USD);

// Making a buy limit order (Buy 0.0001 ETH).
final OrderCreationResultDTO result1 = strategy.createSellLimitOrder(cp, new BigDecimal("0.01"), new BigDecimal("10000000"));
// Making a buy limit order.
final OrderCreationResultDTO result1 = strategy.createSellLimitOrder(cp, new BigDecimal("0.01"), new BigDecimal("100000"));
assertNotNull(result1.getOrder().getOrderId());

// The order must exist.
Expand All @@ -162,21 +162,16 @@ public void checkCancelOrder() {
@Tag("integration")
@DisplayName("Check get trades")
public void checkGetTrades() {
final CurrencyPairDTO cp = new CurrencyPairDTO(ETH, BTC);
final CurrencyPairDTO cp = new CurrencyPairDTO(BTC, USD);

// Creates two orders of the same amount (one buy, one sell).
final OrderCreationResultDTO result1 = strategy.createBuyMarketOrder(cp, new BigDecimal("1"));
final OrderCreationResultDTO result2 = strategy.createSellMarketOrder(cp, new BigDecimal("1"));
final OrderCreationResultDTO result1 = strategy.createBuyMarketOrder(cp, new BigDecimal("0.1"));
final OrderCreationResultDTO result2 = strategy.createSellMarketOrder(cp, new BigDecimal("0.1"));

// Check that the two orders appears in the trade history.
assertTrue(result1.isSuccessful());
try {
TimeUnit.SECONDS.sleep(30);
} catch (InterruptedException e) {
e.printStackTrace();
}
assertTrue(result2.isSuccessful());
await().untilAsserted(() -> assertTrue(tradeService.getTrades().stream().anyMatch(t -> t.getOrderId().equals(result1.getOrder().getOrderId()))));
assertNotNull(result2.getOrder().getOrderId());
await().untilAsserted(() -> assertTrue(tradeService.getTrades().stream().anyMatch(t -> t.getOrderId().equals(result2.getOrder().getOrderId()))));

// Retrieve trade & test values.
Expand All @@ -191,7 +186,7 @@ public void checkGetTrades() {
assertEquals(result1.getOrderId(), t.get().getOrderId());
assertEquals(cp, t.get().getCurrencyPair());
assertNotNull(t.get().getAmount().getValue());
assertEquals(ETH, t.get().getAmount().getCurrency());
assertEquals(BTC, t.get().getAmount().getCurrency());
assertNotNull(t.get().getPrice().getValue());
assertNotNull(t.get().getFee().getValue());
assertNotNull(t.get().getFee().getCurrency());
Expand Down

0 comments on commit 1c14204

Please sign in to comment.