package org.knowm.xchange.gemini.v1.dto.marketdata;
import static org.fest.assertions.api.Assertions.assertThat;
import static org.junit.Assert.assertEquals;
import java.io.IOException;
import java.io.InputStream;
import java.math.BigDecimal;
import org.junit.Test;
import org.knowm.xchange.currency.CurrencyPair;
import org.knowm.xchange.dto.Order.OrderType;
import org.knowm.xchange.gemini.v1.GeminiAdapters;
import com.fasterxml.jackson.databind.ObjectMapper;
public class GeminiMarketDataJSONTest {
@Test
public void testLendbookMarketData() throws IOException {
InputStream resourceAsStream = GeminiMarketDataJSONTest.class.getResourceAsStream("/v1/marketdata/example-marketdepth-lendbook-data.json");
GeminiLendDepth lendDepth = new ObjectMapper().readValue(resourceAsStream, GeminiLendDepth.class);
assertEquals(lendDepth.getAsks().length, 50);
assertEquals(lendDepth.getBids().length, 50);
}
@Test
public void testMarketDepth() throws Exception {
InputStream resourceAsStream = GeminiMarketDataJSONTest.class.getResourceAsStream("/v1/marketdata/example-marketdepth-data.json");
GeminiDepth depthRaw = new ObjectMapper().readValue(resourceAsStream, GeminiDepth.class);
GeminiAdapters.OrdersContainer asksOrdersContainer = GeminiAdapters.adaptOrders(depthRaw.getAsks(), CurrencyPair.BTC_EUR, OrderType.ASK);
GeminiAdapters.OrdersContainer bidsOrdersContainer = GeminiAdapters.adaptOrders(depthRaw.getBids(), CurrencyPair.BTC_EUR, OrderType.BID);
assertEquals(new BigDecimal("851.87"), asksOrdersContainer.getLimitOrders().get(0).getLimitPrice());
assertEquals(new BigDecimal("849.59"), bidsOrdersContainer.getLimitOrders().get(0).getLimitPrice());
assertThat(asksOrdersContainer.getTimestamp()).isEqualTo(1387060950000L);
assertThat(bidsOrdersContainer.getTimestamp()).isEqualTo(1387060435000L);
}
}