kv_test.rs 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. use crate::util::helper::spawn_server;
  2. use backend::services::kv_store::KeyValue;
  3. use std::str;
  4. #[actix_rt::test]
  5. async fn kv_set_test() {
  6. let server = spawn_server().await;
  7. let kv = server.app_ctx.kv_store.clone();
  8. let s1 = "123".to_string();
  9. let key = "1";
  10. let _ = kv.set(key, s1.clone().into()).await.unwrap();
  11. let bytes = kv.get(key).await.unwrap().unwrap();
  12. let s2 = str::from_utf8(&bytes).unwrap();
  13. assert_eq!(s1, s2);
  14. }
  15. #[actix_rt::test]
  16. async fn kv_delete_test() {
  17. let server = spawn_server().await;
  18. let kv = server.app_ctx.kv_store.clone();
  19. let s1 = "123".to_string();
  20. let key = "1";
  21. let _ = kv.set(key, s1.clone().into()).await.unwrap();
  22. let _ = kv.delete(key).await.unwrap();
  23. assert_eq!(kv.get(key).await.unwrap(), None);
  24. }
  25. #[actix_rt::test]
  26. async fn kv_batch_set_test() {
  27. let server = spawn_server().await;
  28. let kv = server.app_ctx.kv_store.clone();
  29. let kvs = vec![
  30. KeyValue {
  31. key: "1".to_string(),
  32. value: "a".to_string().into(),
  33. },
  34. KeyValue {
  35. key: "2".to_string(),
  36. value: "b".to_string().into(),
  37. },
  38. ];
  39. kv.batch_set(kvs.clone()).await.unwrap();
  40. let kvs_from_db = kv
  41. .batch_get(kvs.clone().into_iter().map(|value| value.key).collect::<Vec<String>>())
  42. .await
  43. .unwrap();
  44. assert_eq!(kvs, kvs_from_db);
  45. }