#[cfg(feature = "redis")]
use oxcache::backend::memory::RedisBackend;
use std::sync::Arc;
use crate::common;
#[tokio::test]
#[cfg(feature = "redis")]
async fn test_version_control_set_and_update_value() {
common::setup_logging();
if !common::is_redis_available().await {
println!("Skipping test_version_control because Redis is not available");
return;
}
let redis_url = std::env::var("REDIS_URL").unwrap_or_else(|_| "redis://127.0.0.1:6379".to_string());
let l2: Arc<dyn oxcache::backend::CacheBackend> = match RedisBackend::new(&redis_url).await {
Ok(backend) => Arc::new(backend),
Err(e) => {
println!("无法创建Redis后端: {:?}", e);
return;
}
};
let _ = l2.delete("version_key").await;
l2.set("version_key", b"v1".to_vec(), None).await.expect("Set failed");
let val1 = l2.get("version_key").await.expect("Get failed");
assert_eq!(val1, Some(b"v1".to_vec()));
l2.set("version_key", b"v2".to_vec(), None).await.expect("Set failed");
let val2 = l2.get("version_key").await.expect("Get failed");
assert_eq!(val2, Some(b"v2".to_vec()));
let _ = l2.delete("version_key").await;
}