use doido_cache::{global, CacheStore, MemoryStore};
use serde_json::json;
use std::sync::Arc;
#[tokio::test]
async fn set_store_then_global_accessors_return_it() {
assert!(global::try_store().is_none());
let store: Arc<dyn CacheStore> = Arc::new(MemoryStore::new());
assert!(global::set_store(store).is_ok(), "first install succeeds");
assert!(global::try_store().is_some());
let store = global::store();
store.set("k", json!(5), None).await.unwrap();
assert_eq!(store.get("k").await.unwrap(), Some(json!(5)));
let second: Arc<dyn CacheStore> = Arc::new(MemoryStore::new());
assert!(global::set_store(second).is_err());
}