binance_swap_test.rs 7.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228
  1. mod exchange_test;
  2. use rust_decimal_macros::dec;
  3. use tracing::{instrument, trace};
  4. use standard::exchange::{ExchangeEnum};
  5. use standard::{Platform};
  6. use crate::exchange_test::test_new_exchange;
  7. const SYMBOL: &str = "CFX_USDT";
  8. // 测试获取Exchange实体
  9. #[tokio::test]
  10. #[instrument(level = "TRACE")]
  11. async fn test_get_self_exchange() {
  12. global::log_utils::init_log_with_trace();
  13. let binance_swap_exchange: Box<dyn Platform> = test_new_exchange(ExchangeEnum::BinanceSwap, SYMBOL).await;
  14. let binance_get_self_exchange = binance_swap_exchange.get_self_exchange();
  15. trace!(?binance_get_self_exchange);
  16. }
  17. // 测试获取交易对信息
  18. #[tokio::test]
  19. #[instrument(level = "TRACE")]
  20. async fn test_get_self_symbol() {
  21. global::log_utils::init_log_with_trace();
  22. let binance_swap_exchange: Box<dyn Platform> = test_new_exchange(ExchangeEnum::BinanceSwap, SYMBOL).await;
  23. let binance_get_self_symbol = binance_swap_exchange.get_self_symbol();
  24. trace!(?binance_get_self_symbol);
  25. }
  26. // 测试获取是否使用高速通道
  27. #[tokio::test]
  28. #[instrument(level = "TRACE")]
  29. async fn test_get_self_is_colo() {
  30. global::log_utils::init_log_with_trace();
  31. let binance_swap_exchange: Box<dyn Platform> = test_new_exchange(ExchangeEnum::BinanceSwap, SYMBOL).await;
  32. let binance_get_self_is_colo = binance_swap_exchange.get_self_is_colo();
  33. trace!(?binance_get_self_is_colo);
  34. }
  35. // 测试获取登录params信息
  36. #[tokio::test]
  37. #[instrument(level = "TRACE")]
  38. async fn test_get_self_params() {
  39. global::log_utils::init_log_with_trace();
  40. let binance_swap_exchange: Box<dyn Platform> = test_new_exchange(ExchangeEnum::BinanceSwap, SYMBOL).await;
  41. let binance_get_self_params = binance_swap_exchange.get_self_params();
  42. trace!("binance_get_self_params={:?}",binance_get_self_params);
  43. }
  44. // 测试获取Market信息
  45. #[tokio::test]
  46. #[instrument(level = "TRACE")]
  47. async fn test_get_self_market() {
  48. global::log_utils::init_log_with_trace();
  49. let binance_swap_exchange: Box<dyn Platform> = test_new_exchange(ExchangeEnum::BinanceSwap, SYMBOL).await;
  50. let binance_get_self_market = binance_swap_exchange.get_self_market();
  51. trace!(?binance_get_self_market);
  52. }
  53. // 测试获取请求时间信息
  54. #[tokio::test]
  55. #[instrument(level = "TRACE")]
  56. async fn test_get_request_delays() {
  57. global::log_utils::init_log_with_trace();
  58. let binance_swap_exchange: Box<dyn Platform> = test_new_exchange(ExchangeEnum::BinanceSwap, SYMBOL).await;
  59. let binance_get_request_delays = binance_swap_exchange.get_request_delays();
  60. trace!(?binance_get_request_delays);
  61. }
  62. // 测试获取请求平均时间信息
  63. #[tokio::test]
  64. #[instrument(level = "TRACE")]
  65. async fn test_get_request_avg_delay() {
  66. global::log_utils::init_log_with_trace();
  67. let binance_swap_exchange: Box<dyn Platform> = test_new_exchange(ExchangeEnum::BinanceSwap, SYMBOL).await;
  68. let binance_get_request_avg_delay = binance_swap_exchange.get_request_avg_delay();
  69. trace!(?binance_get_request_avg_delay);
  70. }
  71. // 测试获取最大请求时间信息
  72. #[tokio::test]
  73. #[instrument(level = "TRACE")]
  74. async fn test_get_request_max_delay() {
  75. global::log_utils::init_log_with_trace();
  76. let binance_swap_exchange: Box<dyn Platform> = test_new_exchange(ExchangeEnum::BinanceSwap, SYMBOL).await;
  77. let binance_get_request_max_delay = binance_swap_exchange.get_request_max_delay();
  78. trace!(?binance_get_request_max_delay);
  79. }
  80. // 测试获取服务器时间
  81. #[tokio::test]
  82. #[instrument(level = "TRACE")]
  83. async fn test_get_server_time() {
  84. global::log_utils::init_log_with_trace();
  85. let mut binance_swap_exchange: Box<dyn Platform> = test_new_exchange(ExchangeEnum::BinanceSwap, SYMBOL).await;
  86. let binance_get_server_time = binance_swap_exchange.get_server_time().await;
  87. trace!(?binance_get_server_time);
  88. }
  89. // 测试获取账号信息
  90. #[tokio::test]
  91. #[instrument(level = "TRACE")]
  92. async fn test_get_account() {
  93. global::log_utils::init_log_with_trace();
  94. let mut binance_swap_exchange: Box<dyn Platform> = test_new_exchange(ExchangeEnum::BinanceSwap, SYMBOL).await;
  95. let binance_get_account = binance_swap_exchange.get_account().await;
  96. trace!(?binance_get_account);
  97. }
  98. // 测试获取持仓信息
  99. #[tokio::test]
  100. #[instrument(level = "TRACE")]
  101. async fn test_get_position() {
  102. global::log_utils::init_log_with_trace();
  103. let mut binance_swap_exchange: Box<dyn Platform> = test_new_exchange(ExchangeEnum::BinanceSwap, SYMBOL).await;
  104. let binance_get_position = binance_swap_exchange.get_position().await;
  105. trace!(?binance_get_position);
  106. }
  107. // 测试获取所有持仓信息
  108. #[tokio::test]
  109. #[instrument(level = "TRACE")]
  110. async fn test_get_positions() {
  111. global::log_utils::init_log_with_trace();
  112. let mut binance_swap_exchange: Box<dyn Platform> = test_new_exchange(ExchangeEnum::BinanceSwap, SYMBOL).await;
  113. let binance_get_position = binance_swap_exchange.get_positions().await;
  114. trace!(?binance_get_position);
  115. }
  116. // 测试获取Ticker信息
  117. #[tokio::test]
  118. #[instrument(level = "TRACE")]
  119. async fn test_get_ticker() {
  120. global::log_utils::init_log_with_trace();
  121. let mut binance_swap_exchange: Box<dyn Platform> = test_new_exchange(ExchangeEnum::BinanceSwap, SYMBOL).await;
  122. let binance_get_ticker = binance_swap_exchange.get_ticker().await;
  123. trace!(?binance_get_ticker);
  124. }
  125. // 测试获取订单详情信息
  126. #[tokio::test]
  127. #[instrument(level = "TRACE")]
  128. async fn test_get_order_detail() {
  129. global::log_utils::init_log_with_trace();
  130. let mut binance_swap_exchange: Box<dyn Platform> = test_new_exchange(ExchangeEnum::BinanceSwap, SYMBOL).await;
  131. let binance_get_order_detail = binance_swap_exchange.get_order_detail("", "9999").await;
  132. trace!(?binance_get_order_detail);
  133. }
  134. // 测试获取订单详情信息
  135. #[tokio::test]
  136. #[instrument(level = "TRACE")]
  137. async fn test_get_orders_list() {
  138. global::log_utils::init_log_with_trace();
  139. let mut binance_swap_exchange: Box<dyn Platform> = test_new_exchange(ExchangeEnum::BinanceSwap, SYMBOL).await;
  140. let binance_get_orders_list = binance_swap_exchange.get_orders_list("open").await;
  141. trace!(?binance_get_orders_list);
  142. }
  143. // 测试下单
  144. #[tokio::test]
  145. #[instrument(level = "TRACE")]
  146. async fn test_take_order() {
  147. global::log_utils::init_log_with_trace();
  148. let mut binance_swap_exchange: Box<dyn Platform> = test_new_exchange(ExchangeEnum::BinanceSwap, SYMBOL).await;
  149. let binance_take_order = binance_swap_exchange.take_order("999999", "kd", dec!(0.11), dec!(50)).await;
  150. trace!(?binance_take_order);
  151. }
  152. // 测试撤销订单
  153. #[tokio::test]
  154. #[instrument(level = "TRACE")]
  155. async fn test_cancel_order() {
  156. global::log_utils::init_log_with_trace();
  157. let mut binance_swap_exchange: Box<dyn Platform> = test_new_exchange(ExchangeEnum::BinanceSwap, SYMBOL).await;
  158. let binance_cancel_order = binance_swap_exchange.cancel_order("", "999999").await;
  159. trace!(?binance_cancel_order);
  160. }
  161. // 测试批量撤销订单
  162. #[tokio::test]
  163. #[instrument(level = "TRACE")]
  164. async fn test_cancel_orders() {
  165. global::log_utils::init_log_with_trace();
  166. let mut binance_swap_exchange: Box<dyn Platform> = test_new_exchange(ExchangeEnum::BinanceSwap, SYMBOL).await;
  167. let binance_cancel_orders = binance_swap_exchange.cancel_orders().await;
  168. trace!(?binance_cancel_orders);
  169. }
  170. // 测试设置持仓模式
  171. #[tokio::test]
  172. #[instrument(level = "TRACE")]
  173. async fn test_set_dual_mode() {
  174. global::log_utils::init_log_with_trace();
  175. let mut binance_swap_exchange: Box<dyn Platform> = test_new_exchange(ExchangeEnum::BinanceSwap, SYMBOL).await;
  176. let binance_set_dual_mode = binance_swap_exchange.set_dual_mode("usdt", true).await;
  177. trace!(?binance_set_dual_mode);
  178. }
  179. // 测试设置杠杆
  180. #[tokio::test]
  181. #[instrument(level = "TRACE")]
  182. async fn test_set_dual_leverage() {
  183. global::log_utils::init_log_with_trace();
  184. let mut binance_swap_exchange: Box<dyn Platform> = test_new_exchange(ExchangeEnum::BinanceSwap, SYMBOL).await;
  185. let binance_set_dual_leverage = binance_swap_exchange.set_dual_leverage("1").await;
  186. trace!(?binance_set_dual_leverage);
  187. }