use deribit_api::*;
use serde_json::{Value, json};
#[test]
fn public_get_time_request_serializes_to_empty_object() {
let req = PublicGetTimeRequest::default();
let params = req.to_params();
assert_eq!(params, json!({}));
assert_eq!(req.method_name(), "public/get_time");
assert!(!req.is_private());
}
#[test]
fn private_get_account_summary_is_private_and_has_required_param() {
let req = PrivateGetAccountSummaryRequest {
currency: WalletCurrency::Btc,
..Default::default()
};
assert_eq!(req.method_name(), "private/get_account_summary");
assert!(req.is_private());
let params = req.to_params();
assert_eq!(
params.get("currency"),
Some(&Value::String("BTC".to_string()))
);
}
#[test]
fn public_auth_request_serialization_skips_nones() {
let req = PublicAuthRequest {
grant_type: PublicAuthGrantType::ClientCredentials,
client_id: "id".into(),
client_secret: "secret".into(),
..Default::default()
};
let params = req.to_params();
assert_eq!(
params.get("grant_type"),
Some(&Value::String("client_credentials".into()))
);
assert_eq!(params.get("client_id"), Some(&Value::String("id".into())));
assert_eq!(
params.get("client_secret"),
Some(&Value::String("secret".into()))
);
assert!(params.get("nonce").is_none());
assert!(params.get("state").is_none());
}