mirror of
https://github.com/comit-network/xmr-btc-swap.git
synced 2025-02-09 03:18:44 -05:00
updating rpc-server tests
This commit is contained in:
parent
d416095146
commit
5d301ebbb1
2
Cargo.lock
generated
2
Cargo.lock
generated
@ -1886,7 +1886,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "a4e70b4439a751a5de7dd5ed55eacff78ebf4ffe0fc009cb1ebb11417f5b536b"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"arrayvec 0.7.2",
|
||||
"arrayvec",
|
||||
"async-lock",
|
||||
"async-trait",
|
||||
"beef",
|
||||
|
@ -20,7 +20,14 @@ use sequential_test::sequential;
|
||||
|
||||
#[cfg(test)]
|
||||
|
||||
|
||||
// to be replaced with actual "real" testing values
|
||||
// need to create some kind of swap database and bitcoin environment with some funds
|
||||
const SERVER_ADDRESS: &str = "127.0.0.1:1234";
|
||||
const BITCOIN_ADDR: &str = "valid_address";
|
||||
const MONERO_ADDR: &str = "valid_address";
|
||||
const SELLER: &str = "some_seller";
|
||||
const SWAP_ID: &str = "valid_swap_id";
|
||||
|
||||
pub async fn initialize_context() -> (Arc<Context>, Request) {
|
||||
let (is_testnet, debug, json) = (true, false, false);
|
||||
@ -162,7 +169,7 @@ pub async fn get_seller() {
|
||||
}
|
||||
|
||||
let mut params = ObjectParams::new();
|
||||
params.insert("swap_id", "invalid_swap_000");
|
||||
params.insert("swap_id", "invalid_swap");
|
||||
|
||||
let response: Result<HashMap<String, String>, _> = client.request("get_seller", params).await;
|
||||
|
||||
@ -172,7 +179,7 @@ pub async fn get_seller() {
|
||||
}
|
||||
|
||||
let mut params = ObjectParams::new();
|
||||
params.insert("swap_id", "existing_swap");
|
||||
params.insert("swap_id", SWAP_ID);
|
||||
|
||||
let response: Result<HashMap<String, String>, _> = client.request("get_seller", params).await;
|
||||
|
||||
@ -200,17 +207,13 @@ pub async fn get_swap_start_date() {
|
||||
|
||||
let response: Result<HashMap<String, String>, _> = client.request("get_swap_start_date", params).await;
|
||||
|
||||
// We should ideally match the expected error and panic if it's different one, but the request returns a custom error (to investigate)
|
||||
// Err(jsonrpsee_core::Error::Call(CallError::InvalidParams(e))) => (),
|
||||
// Err(e) => panic!("ErrorType was not ParseError but {e:?}"),
|
||||
|
||||
match response {
|
||||
Err(e) => (),
|
||||
_ => panic!("Expected an error when swap_id is missing"),
|
||||
}
|
||||
|
||||
let mut params = ObjectParams::new();
|
||||
params.insert("swap_id", "invalid_swap_000");
|
||||
params.insert("swap_id", "invalid_swap");
|
||||
|
||||
let response: Result<HashMap<String, String>, _> = client.request("get_swap_start_date", params).await;
|
||||
|
||||
@ -220,7 +223,7 @@ pub async fn get_swap_start_date() {
|
||||
}
|
||||
|
||||
let mut params = ObjectParams::new();
|
||||
params.insert("swap_id", "existing_swap");
|
||||
params.insert("swap_id", SWAP_ID);
|
||||
|
||||
let response: Result<HashMap<String, String>, _> = client.request("get_swap_start_date", params).await;
|
||||
|
||||
@ -248,17 +251,13 @@ pub async fn resume_swap() {
|
||||
|
||||
let response: Result<HashMap<String, String>, _> = client.request("get_swap_start_date", params).await;
|
||||
|
||||
// We should ideally match the expected error and panic if it's different one, but the request returns a custom error (to investigate)
|
||||
// Err(jsonrpsee_core::Error::Call(CallError::InvalidParams(e))) => (),
|
||||
// Err(e) => panic!("ErrorType was not ParseError but {e:?}"),
|
||||
|
||||
match response {
|
||||
Err(e) => (),
|
||||
_ => panic!("Expected an error when swap_id is missing"),
|
||||
}
|
||||
|
||||
let mut params = ObjectParams::new();
|
||||
params.insert("swap_id", "invalid_swap_000");
|
||||
params.insert("swap_id", "invalid_swap");
|
||||
|
||||
let response: Result<HashMap<String, String>, _> = client.request("get_swap_start_date", params).await;
|
||||
|
||||
@ -268,7 +267,7 @@ pub async fn resume_swap() {
|
||||
}
|
||||
|
||||
let mut params = ObjectParams::new();
|
||||
params.insert("swap_id", "existing_swap");
|
||||
params.insert("swap_id", SWAP_ID);
|
||||
|
||||
let response: Result<HashMap<String, String>, _> = client.request("get_swap_start_date", params).await;
|
||||
|
||||
@ -278,3 +277,166 @@ pub async fn resume_swap() {
|
||||
}
|
||||
ctx.shutdown.send(());
|
||||
}
|
||||
|
||||
#[tokio::test]
|
||||
#[sequential]
|
||||
pub async fn withdraw_btc() {
|
||||
let (ctx, mut request) = initialize_context().await;
|
||||
let move_ctx = Arc::clone(&ctx);
|
||||
tokio::spawn(async move {
|
||||
request.call(Arc::clone(&move_ctx)).await;
|
||||
});
|
||||
|
||||
let url = format!("ws://{}", SERVER_ADDRESS);
|
||||
tokio::time::sleep(Duration::from_secs(3)).await;
|
||||
|
||||
let client = WsClientBuilder::default().build(&url).await.unwrap();
|
||||
let mut params = ObjectParams::new();
|
||||
|
||||
let response: Result<HashMap<String, String>, _> = client.request("withdraw_btc", params).await;
|
||||
|
||||
match response {
|
||||
Err(e) => (),
|
||||
_ => panic!("Expected an error when withdraw_address is missing"),
|
||||
}
|
||||
|
||||
let mut params = ObjectParams::new();
|
||||
params.insert("address", "invalid_address");
|
||||
|
||||
let response: Result<HashMap<String, String>, _> = client.request("withdraw_btc", params).await;
|
||||
|
||||
match response {
|
||||
Err(e) => (),
|
||||
_ => panic!("Expected an error when withdraw_address is malformed"),
|
||||
}
|
||||
|
||||
let mut params = ObjectParams::new();
|
||||
params.insert("address", BITCOIN_ADDR);
|
||||
params.insert("amount", "0");
|
||||
|
||||
let response: Result<HashMap<String, String>, _> = client.request("withdraw_btc", params).await;
|
||||
|
||||
match response {
|
||||
Err(e) => (),
|
||||
_ => panic!("Expected an error when amount is 0"),
|
||||
}
|
||||
|
||||
let mut params = ObjectParams::new();
|
||||
params.insert("address", BITCOIN_ADDR);
|
||||
params.insert("amount", "0.1");
|
||||
|
||||
let response: Result<HashMap<String, String>, _> = client.request("withdraw_btc", params).await;
|
||||
|
||||
match response {
|
||||
Ok(hash) => (),
|
||||
Err(e) => panic!("Expected a HashMap, got an error: {}", e),
|
||||
}
|
||||
|
||||
ctx.shutdown.send(());
|
||||
}
|
||||
|
||||
#[tokio::test]
|
||||
#[sequential]
|
||||
pub async fn buy_xmr() {
|
||||
let (ctx, mut request) = initialize_context().await;
|
||||
let move_ctx = Arc::clone(&ctx);
|
||||
tokio::spawn(async move {
|
||||
request.call(Arc::clone(&move_ctx)).await;
|
||||
});
|
||||
|
||||
let url = format!("ws://{}", SERVER_ADDRESS);
|
||||
tokio::time::sleep(Duration::from_secs(3)).await;
|
||||
|
||||
let client = WsClientBuilder::default().build(&url).await.unwrap();
|
||||
let mut params = ObjectParams::new();
|
||||
|
||||
let response: Result<HashMap<String, String>, _> = client.request("buy_xmr", params).await;
|
||||
|
||||
match response {
|
||||
Err(e) => (),
|
||||
_ => panic!("Expected an error when no params are given"),
|
||||
}
|
||||
|
||||
let mut params = ObjectParams::new();
|
||||
params.insert("bitcoin_change_address", BITCOIN_ADDR);
|
||||
params.insert("monero_receive_address", MONERO_ADDR);
|
||||
|
||||
let response: Result<HashMap<String, String>, _> = client.request("buy_xmr", params).await;
|
||||
|
||||
match response {
|
||||
Err(e) => (),
|
||||
_ => panic!("Expected an error when seller is missing"),
|
||||
}
|
||||
|
||||
let mut params = ObjectParams::new();
|
||||
params.insert("bitcoin_change_address", BITCOIN_ADDR);
|
||||
params.insert("seller", SELLER);
|
||||
|
||||
let response: Result<HashMap<String, String>, _> = client.request("buy_xmr", params).await;
|
||||
|
||||
match response {
|
||||
Err(e) => (),
|
||||
_ => panic!("Expected an error when monero_receive_address is missing"),
|
||||
}
|
||||
|
||||
let mut params = ObjectParams::new();
|
||||
params.insert("monero_receive_address", MONERO_ADDR);
|
||||
params.insert("seller", SELLER);
|
||||
|
||||
let response: Result<HashMap<String, String>, _> = client.request("buy_xmr", params).await;
|
||||
|
||||
match response {
|
||||
Err(e) => (),
|
||||
_ => panic!("Expected an error when bitcoin_change_address is missing"),
|
||||
}
|
||||
|
||||
let mut params = ObjectParams::new();
|
||||
params.insert("bitcoin_change_address", "invalid_address");
|
||||
params.insert("monero_receive_address", MONERO_ADDR);
|
||||
params.insert("seller", SELLER);
|
||||
|
||||
let response: Result<HashMap<String, String>, _> = client.request("buy_xmr", params).await;
|
||||
|
||||
match response {
|
||||
Err(e) => (),
|
||||
_ => panic!("Expected an error when bitcoin_change_address is malformed"),
|
||||
}
|
||||
|
||||
let mut params = ObjectParams::new();
|
||||
params.insert("bitcoin_change_address", BITCOIN_ADDR);
|
||||
params.insert("monero_receive_address", "invalid_address");
|
||||
params.insert("seller", SELLER);
|
||||
|
||||
let response: Result<HashMap<String, String>, _> = client.request("buy_xmr", params).await;
|
||||
|
||||
match response {
|
||||
Err(e) => (),
|
||||
_ => panic!("Expected an error when monero_receive_address is malformed"),
|
||||
}
|
||||
|
||||
let mut params = ObjectParams::new();
|
||||
params.insert("bitcoin_change_address", BITCOIN_ADDR);
|
||||
params.insert("monero_receive_address", MONERO_ADDR);
|
||||
params.insert("seller", "invalid_seller");
|
||||
|
||||
let response: Result<HashMap<String, String>, _> = client.request("buy_xmr", params).await;
|
||||
|
||||
match response {
|
||||
Err(e) => (),
|
||||
_ => panic!("Expected an error when seller is malformed"),
|
||||
}
|
||||
|
||||
let mut params = ObjectParams::new();
|
||||
params.insert("bitcoin_change_address", BITCOIN_ADDR);
|
||||
params.insert("monero_receive_address", MONERO_ADDR);
|
||||
params.insert("seller", SELLER);
|
||||
|
||||
let response: Result<HashMap<String, String>, _> = client.request("buy_xmr", params).await;
|
||||
|
||||
match response {
|
||||
Ok(hash) => (),
|
||||
Err(e) => panic!("Expected a HashMap, got an error: {}", e),
|
||||
}
|
||||
|
||||
ctx.shutdown.send(());
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user