gate_handle_test.rs 3.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. mod exchange_test;
  2. use std::collections::BTreeMap;
  3. use tracing::{instrument, trace};
  4. use exchanges::gate_swap_rest::GateSwapRest;
  5. use exchanges::gate_swap_ws::GateSwapSubscribeType;
  6. use standard::exchange::ExchangeEnum;
  7. use crate::exchange_test::{test_new_exchange_wss};
  8. const SYMBOL: &str = "BTC_USDT";
  9. async fn get_user_id() -> String {
  10. let account_info = global::account_info::get_account_info("../test_account.toml");
  11. let mut params: BTreeMap<String, String> = BTreeMap::new();
  12. let access_key = account_info.gate_access_key;
  13. let secret_key = account_info.gate_secret_key;
  14. params.insert("access_key".to_string(), access_key);
  15. params.insert("secret_key".to_string(), secret_key);
  16. let mut gate_request = GateSwapRest::new(false, params);
  17. let res_data = gate_request.wallet_fee().await;
  18. if res_data.code == "200" {
  19. let res_data_json: serde_json::Value = serde_json::from_str(&res_data.data).unwrap();
  20. res_data_json["user_id"].to_string()
  21. } else {
  22. "".to_string()
  23. }
  24. }
  25. // 测试订阅深度订阅
  26. #[tokio::test(flavor = "multi_thread", worker_threads = 4)]
  27. #[instrument(level = "TRACE")]
  28. async fn test_get_wss_depth() {
  29. global::log_utils::init_log_with_trace();
  30. let gate_subscribe_type = vec![
  31. GateSwapSubscribeType::PuFuturesOrderBook
  32. ];
  33. test_new_exchange_wss(ExchangeEnum::GateSwap, SYMBOL, gate_subscribe_type, "depth").await;
  34. }
  35. // 测试订阅Ticker信息
  36. #[tokio::test(flavor = "multi_thread", worker_threads = 4)]
  37. #[instrument(level = "TRACE")]
  38. async fn test_get_wss_ticker() {
  39. global::log_utils::init_log_with_trace();
  40. let gate_subscribe_type = vec![
  41. GateSwapSubscribeType::PuFuturesOrderBook
  42. ];
  43. test_new_exchange_wss(ExchangeEnum::GateSwap, SYMBOL, gate_subscribe_type, "ticker").await;
  44. }
  45. // 测试订阅Account信息
  46. #[tokio::test(flavor = "multi_thread", worker_threads = 4)]
  47. #[instrument(level = "TRACE")]
  48. async fn test_get_wss_account() {
  49. global::log_utils::init_log_with_trace();
  50. let user_id = get_user_id().await;
  51. trace!(?user_id);
  52. let gate_subscribe_type = vec![
  53. GateSwapSubscribeType::PrFuturesBalances(user_id)
  54. ];
  55. test_new_exchange_wss(ExchangeEnum::GateSwap, SYMBOL, gate_subscribe_type, "account").await;
  56. }
  57. // 测试订阅Position信息
  58. #[tokio::test(flavor = "multi_thread", worker_threads = 4)]
  59. #[instrument(level = "TRACE")]
  60. async fn test_get_wss_position() {
  61. global::log_utils::init_log_with_trace();
  62. let user_id = get_user_id().await;
  63. let gate_subscribe_type = vec![
  64. GateSwapSubscribeType::PrFuturesPositions(user_id)
  65. ];
  66. test_new_exchange_wss(ExchangeEnum::GateSwap, SYMBOL, gate_subscribe_type, "position").await;
  67. }
  68. // 测试订阅Orders信息
  69. #[tokio::test(flavor = "multi_thread", worker_threads = 4)]
  70. #[instrument(level = "TRACE")]
  71. async fn test_get_wss_orders() {
  72. global::log_utils::init_log_with_trace();
  73. let user_id = get_user_id().await;
  74. let gate_subscribe_type = vec![
  75. GateSwapSubscribeType::PrFuturesOrders(user_id)
  76. ];
  77. test_new_exchange_wss(ExchangeEnum::GateSwap, SYMBOL, gate_subscribe_type, "orders").await;
  78. }