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> = match Cache::redis(redis_url).await {
Ok(c) => c,
Err(e) => {
println!("Skipping test: Failed to create cache (TLS required): {}", e);
return;
}
};
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;
cleanup_service(&service_name).await;
}