use common::{cleanup_service, generate_unique_service_name, is_redis_available, setup_logging};
use oxcache::Cache;
use crate::common;
#[tokio::test]
async fn test_two_level_cache_flow() {
if !is_redis_available().await {
println!("跳过test_two_level_cache_flow:Redis不可用");
return;
}
setup_logging();
let service_name = generate_unique_service_name("flow_test");
let redis_url = "redis://127.0.0.1:6379";
let cache: Cache<String, String> = Cache::tiered(100, redis_url)
.await
.expect("Failed to create tiered cache");
let test_val = "value1".to_string();
cache.set(&"key1".to_string(), &test_val).await.unwrap();
let val: Option<String> = cache.get(&"key1".to_string()).await.unwrap();
assert_eq!(val, Some("value1".to_string()));
cache.delete(&"key1".to_string()).await.unwrap();
let val: Option<String> = cache.get(&"key1".to_string()).await.unwrap();
assert!(val.is_none());
cache.shutdown().await.expect("Shutdown failed");
cleanup_service(&service_name).await;
}