mirror of https://github.com/tikv/client-rust.git
85 lines
2.5 KiB
Rust
85 lines
2.5 KiB
Rust
#[cfg(test)]
|
|
mod test {
|
|
use grpcio::redirect_log;
|
|
use log::debug;
|
|
use mock_tikv::{start_mock_pd_server, start_mock_tikv_server, MOCK_PD_PORT};
|
|
use simple_logger::SimpleLogger;
|
|
use tikv_client::{KvPair, RawClient};
|
|
|
|
#[tokio::test]
|
|
#[ignore]
|
|
async fn test_raw_put_get() {
|
|
SimpleLogger::new().init().unwrap();
|
|
redirect_log();
|
|
|
|
let mut tikv_server = start_mock_tikv_server();
|
|
let _pd_server = start_mock_pd_server();
|
|
|
|
let client = RawClient::new(vec![format!("localhost:{MOCK_PD_PORT}")], None)
|
|
.await
|
|
.unwrap();
|
|
|
|
// empty; get non-existent key
|
|
let res = client.get("k1".to_owned()).await;
|
|
assert_eq!(res.unwrap(), None);
|
|
|
|
// empty; put then batch_get
|
|
client.put("k1".to_owned(), "v1".to_owned()).await.unwrap();
|
|
client.put("k2".to_owned(), "v2".to_owned()).await.unwrap();
|
|
|
|
let res = client
|
|
.batch_get(vec!["k1".to_owned(), "k2".to_owned(), "k3".to_owned()])
|
|
.await
|
|
.unwrap();
|
|
assert_eq!(res.len(), 2);
|
|
assert_eq!(res[0].1, "v1".as_bytes());
|
|
assert_eq!(res[1].1, "v2".as_bytes());
|
|
|
|
// k1,k2; batch_put then batch_get
|
|
client
|
|
.batch_put(vec![
|
|
KvPair::new("k3".to_owned(), "v3".to_owned()),
|
|
KvPair::new("k4".to_owned(), "v4".to_owned()),
|
|
])
|
|
.await
|
|
.unwrap();
|
|
|
|
let res = client
|
|
.batch_get(vec!["k4".to_owned(), "k3".to_owned()])
|
|
.await
|
|
.unwrap();
|
|
assert_eq!(res[0].1, "v3".as_bytes());
|
|
assert_eq!(res[1].1, "v4".as_bytes());
|
|
|
|
// k1,k2,k3,k4; delete then get
|
|
let res = client.delete("k3".to_owned()).await;
|
|
assert!(res.is_ok());
|
|
|
|
let res = client.get("k3".to_owned()).await;
|
|
assert_eq!(res.unwrap(), None);
|
|
|
|
// k1,k2,k4; batch_delete then batch_get
|
|
let res = client
|
|
.batch_delete(vec!["k1".to_owned(), "k2".to_owned(), "k4".to_owned()])
|
|
.await;
|
|
assert!(res.is_ok());
|
|
|
|
let res = client
|
|
.batch_get(vec![
|
|
"k1".to_owned(),
|
|
"k2".to_owned(),
|
|
"k3".to_owned(),
|
|
"k4".to_owned(),
|
|
])
|
|
.await
|
|
.unwrap();
|
|
assert_eq!(res.len(), 0);
|
|
|
|
debug!("Pass all tests");
|
|
|
|
let _ = tikv_server.shutdown().await;
|
|
// FIXME: shutdown PD server
|
|
// let _ = pd_server.shutdown().await;
|
|
}
|
|
}
|