package org.knowm.xchange.bleutrade.dto;
import static org.fest.assertions.api.Assertions.assertThat;
import java.io.IOException;
import org.junit.Test;
import org.knowm.xchange.bleutrade.BleutradeException;
import org.knowm.xchange.bleutrade.dto.account.BleutradeBalanceReturn;
import org.knowm.xchange.bleutrade.dto.account.BleutradeBalancesReturn;
import org.knowm.xchange.bleutrade.dto.account.BleutradeDepositAddressReturn;
import org.knowm.xchange.bleutrade.dto.marketdata.BleutradeCurrenciesReturn;
import org.knowm.xchange.bleutrade.dto.marketdata.BleutradeMarketHistoryReturn;
import org.knowm.xchange.bleutrade.dto.marketdata.BleutradeMarketsReturn;
import org.knowm.xchange.bleutrade.dto.marketdata.BleutradeOrderBookReturn;
import org.knowm.xchange.bleutrade.dto.marketdata.BleutradeTickerReturn;
import org.knowm.xchange.bleutrade.dto.trade.BleutradeCancelOrderReturn;
import org.knowm.xchange.bleutrade.dto.trade.BleutradeOpenOrdersReturn;
import org.knowm.xchange.bleutrade.dto.trade.BleutradePlaceOrderReturn;
public class BleutradeDtoTest extends BleutradeDtoTestSupport {
protected static final String BALANCE_RETURN_STR = "BleutradeBalanceReturn [success=true, message=, "
+ "result=BleutradeBalance [Currency=BTC, Balance=15.49843675, Available=13.98901996, Pending=0E-8, "
+ "CryptoAddress=1NKh9X1z4Q4AbBnEgNiKU177GMyeQUexC9, IsActive=true, additionalProperties={}], " + "additionalProperties={}]";
protected static final String BALANCES_RETURN_STR = "BleutradeBalancesReturn [success=true, message=, result=["
+ "BleutradeBalance [Currency=DOGE, Balance=0E-8, Available=0E-8, Pending=0E-8, "
+ "CryptoAddress=DBSwFELQiVrwxFtyHpVHbgVrNJXwb3hoXL, IsActive=true, additionalProperties={}], "
+ "BleutradeBalance [Currency=BTC, Balance=15.49843675, Available=13.98901996, Pending=0E-8, "
+ "CryptoAddress=1NKh9X1z4Q4AbBnEgNiKU177GMyeQUexC9, IsActive=true, additionalProperties={}]], " + "additionalProperties={}]";
protected static final String CANCEL_ORDER_RETURN_STR = "BleutradeCancelOrderReturn [success=true, message=, result=[12345], additionalProperties={}]";
protected static final String CURRENCIES_RETURN_STR = "BleutradeCurrenciesReturn [success=true, message=, result=["
+ "BleutradeCurrency [Currency=BTC, CurrencyLong=Bitcoin, MinConfirmation=2, TxFee=0.00080000, "
+ "IsActive=true, CoinType=BITCOIN, additionalProperties={MaintenanceMode=false}], "
+ "BleutradeCurrency [Currency=LTC, CurrencyLong=Litecoin, MinConfirmation=4, TxFee=0.02000000, "
+ "IsActive=true, CoinType=BITCOIN, additionalProperties={MaintenanceMode=false}]" + "], additionalProperties={}]";
protected static final String DEPOSIT_ADDRESS_RETURN_STR = "BleutradeDepositAddressReturn [success=true, message=, result="
+ "BleutradeDepositAddress [Currency=BTC, Address=1NKh9X1z4Q4AbBnEgNiKU177GMyeQUexC9, additionalProperties={}], " + "additionalProperties={}]";
protected static final String MARKET_HISTORY_RETURN_STR = "BleutradeMarketHistoryReturn [success=true, message=, result=["
+ "BleutradeTrade [TimeStamp=2014-07-29 18:08:00, Quantity=654971.69417461, Price=5.5E-7, Total=0.360234432, "
+ "OrderType=BUY, additionalProperties={}], "
+ "BleutradeTrade [TimeStamp=2014-07-29 18:12:35, Quantity=120.00000000, Price=0.00006600, Total=0.360234432, "
+ "OrderType=SELL, additionalProperties={}]], " + "additionalProperties={}]";
protected static final String MARKETS_RETURN_STR = "BleutradeMarketsReturn [success=true, message=, result=["
+ "BleutradeMarket [MarketCurrency=DOGE, BaseCurrency=BTC, MarketCurrencyLong=Dogecoin, "
+ "BaseCurrencyLong=Bitcoin, MinTradeSize=0.10000000, " + "MarketName=DOGE_BTC, IsActive=true, additionalProperties={}], "
+ "BleutradeMarket [MarketCurrency=BLEU, BaseCurrency=BTC, MarketCurrencyLong=Bleutrade Share, "
+ "BaseCurrencyLong=Bitcoin, MinTradeSize=1E-8, " + "MarketName=BLEU_BTC, IsActive=true, additionalProperties={}]], "
+ "additionalProperties={}]";
protected static final String OPEN_ORDERS_RETURN_STR = "BleutradeOpenOrdersReturn [success=true, message=, result=["
+ "BleutradeOpenOrder [OrderId=65489, Exchange=LTC_BTC, Type=BUY, Quantity=20.00000000, "
+ "QuantityRemaining=5.00000000, QuantityBaseTraded=0.16549400, "
+ "Price=0.01268311, Status=OPEN, Created=2014-08-03 13:55:20, Comments=My optional comment, eg function id #123, "
+ "additionalProperties={}], " + "BleutradeOpenOrder [OrderId=65724, Exchange=DOGE_BTC, Type=SELL, Quantity=150491.98700000, "
+ "QuantityRemaining=795.00000000, QuantityBaseTraded=0.04349400, "
+ "Price=5.5E-7, Status=OPEN, Created=2014-07-29 18:45:17, Comments=Function #123 Connect #456, additionalProperties={}]], "
+ "additionalProperties={}]";
protected static final String ORDER_BOOK_RETURN_STR = "BleutradeOrderBookReturn [success=true, message=, result=BleutradeOrderBookResult "
+ "[buy=[BleutradeLevel [Quantity=4.99400000, Rate=3.00650900, additionalProperties={}], "
+ "BleutradeLevel [Quantity=50.00000000, Rate=3.50000000, additionalProperties={}]], "
+ "sell=[BleutradeLevel [Quantity=12.44147454, Rate=5.13540000, additionalProperties={}], "
+ "BleutradeLevel [Quantity=100.00000000, Rate=6.25500000, additionalProperties={}], "
+ "BleutradeLevel [Quantity=30.00000000, Rate=6.75500001, additionalProperties={}], "
+ "BleutradeLevel [Quantity=13.49989999, Rate=6.76260099, additionalProperties={}]], " + "additionalProperties={}], additionalProperties={}]";
protected static final String PLACE_ORDER_RETURN_STR = "BleutradePlaceOrderReturn [success=true, message=, "
+ "result=BleutradeOrderId [orderid=65498, additionalProperties={}], additionalProperties={}]";
protected static final String TICKER_RETURN_STR = "BleutradeTickerReturn [success=true, message=, result=["
+ "BleutradeTicker [MarketName=BLEU_BTC, PrevDay=0.00095000, High=0.00105000, Low=0.00086000, "
+ "Last=0.00101977, Average=0.00103455, Volume=2450.97496015, BaseVolume=2.40781647, "
+ "TimeStamp=2014-07-29 11:19:30, Bid=0.00100000, Ask=0.00101977, IsActive=true, additionalProperties={}], "
+ "BleutradeTicker [MarketName=LTC_BTC, PrevDay=0.00095000, High=0.01333000, Low=0.01167001, Last=0.01333000, "
+ "Average=0.01235000, Volume=14.46077245, BaseVolume=0.18765956, "
+ "TimeStamp=2014-07-29 11:48:02, Bid=0.01268311, Ask=0.01333000, IsActive=true, additionalProperties={}]], " + "additionalProperties={}]";
@Test
public void shouldParseBalanceReturn() throws IOException {
// when
final BleutradeBalanceReturn response = parse(BleutradeBalanceReturn.class);
// then
assertThat(response.toString()).isEqualTo(BALANCE_RETURN_STR);
}
@Test
public void shouldParseBalancesReturn() throws IOException {
// when
final BleutradeBalancesReturn response = parse(BleutradeBalancesReturn.class);
// then
assertThat(response.toString()).isEqualTo(BALANCES_RETURN_STR);
}
// current response format is differs from /market/cancel output (see https://bleutrade.com/help/API)
@Test
public void shouldParseCancelOrderReturn() throws IOException {
// when
final BleutradeCancelOrderReturn response = parse(BleutradeCancelOrderReturn.class);
// then
assertThat(response.toString()).isEqualTo(CANCEL_ORDER_RETURN_STR);
}
@Test
public void shouldParseCurrenciesReturn() throws IOException {
// when
final BleutradeCurrenciesReturn response = parse(BleutradeCurrenciesReturn.class);
// then
assertThat(response.toString()).isEqualTo(CURRENCIES_RETURN_STR);
}
@Test
public void shouldParseDepositAddressReturn() throws IOException {
// when
final BleutradeDepositAddressReturn response = parse(BleutradeDepositAddressReturn.class);
// then
assertThat(response.toString()).isEqualTo(DEPOSIT_ADDRESS_RETURN_STR);
}
@Test
public void shouldParseMarketHistoryReturn() throws IOException {
// when
final BleutradeMarketHistoryReturn response = parse(BleutradeMarketHistoryReturn.class);
// then
assertThat(response.toString()).isEqualTo(MARKET_HISTORY_RETURN_STR);
}
@Test
public void shouldParseMarketsReturn() throws IOException {
// when
final BleutradeMarketsReturn response = parse(BleutradeMarketsReturn.class);
// then
assertThat(response.toString()).isEqualTo(MARKETS_RETURN_STR);
}
@Test
public void shouldParseOpenOrdersReturn() throws IOException {
// when
final BleutradeOpenOrdersReturn response = parse(BleutradeOpenOrdersReturn.class);
// then
assertThat(response.toString()).isEqualTo(OPEN_ORDERS_RETURN_STR);
}
@Test
public void shouldParseOrderBookReturn() throws IOException {
// when
final BleutradeOrderBookReturn response = parse(BleutradeOrderBookReturn.class);
// then
assertThat(response.toString()).isEqualTo(ORDER_BOOK_RETURN_STR);
}
@Test
public void shouldParsePlaceOrderReturn() throws IOException {
// when
final BleutradePlaceOrderReturn response = parse(BleutradePlaceOrderReturn.class);
// then
assertThat(response.toString()).isEqualTo(PLACE_ORDER_RETURN_STR);
}
@Test
public void shouldParseTickerReturn() throws IOException {
// when
final BleutradeTickerReturn response = parse(BleutradeTickerReturn.class);
// then
assertThat(response.toString()).isEqualTo(TICKER_RETURN_STR);
}
@Test
public void shouldParseCancelOrderReturnAsException() throws IOException {
// when
final BleutradeException response = parse("CancelOrderReturn", BleutradeException.class);
// then
assertThat(response.getSuccess()).isEqualTo("true");
assertThat(response.getMessage()).isEmpty();
assertThat(response.getResult()).hasSize(1);
assertThat(response.getResult()).contains("12345");
assertThat(response.getAdditionalProperties()).isEmpty();
}
}