rvault/src/engines/kv/tests.rs
2024-04-28 14:27:02 +02:00

71 lines
2.1 KiB
Rust

use super::*;
#[test]
fn print_serialized_test() {
let temp_secret = TempSecret {
content: String::from("Hallo"),
version: 12,
};
let serialized = serialize_secret_json(&temp_secret);
println!("string serialized: {:?}", serialized);
let deserialized = deserialize_secret_struct(&serialized.unwrap());
println!(
"Struct field from deserialized: {}",
deserialized.unwrap().content
)
}
#[test]
fn test_patching() {
// TODO add more assertions
let mut base = create_mock_meta();
println!("OLD metadata: {:?}", base);
let overwrite: SecretMeta = SecretMeta {
max_versions: 10,
versions: vec![VersionMeta {
created_time: Utc::now(),
deletion_time: Some(Utc::now()),
destroyed: true,
}],
cas_required: true,
delete_version_after: "10m".to_string(),
current_version: 4,
oldest_version: 2,
updated_time: Utc::now(),
created_time: Utc::now(),
custom_metadata: HashMap::new(),
};
let mut patched: Option<SecretMeta> = None; // Laurenz here
match patch_metadata(&mut base, &overwrite) {
Ok(meta) => {
println!("NEW metadata: {:?}", meta);
println!("patched successfully");
patched = Some(meta);
}
Err(e) => {
log::error!("error patching metadata: {}", e);
panic!("Patching failed");
}
}
if let Some(patched_meta) = patched {
assert!(patched_meta.current_version == 4);
assert!(patched_meta.versions[0].destroyed == true);
} else {
panic!("patched was not initialized");
}
}
pub fn create_mock_meta() -> SecretMeta {
SecretMeta {
cas_required: false,
created_time: DateTime::parse_from_rfc3339("2018-03-22T02:24:06.945319214Z")
.unwrap()
.with_timezone(&Utc),
current_version: 3,
delete_version_after: "3h25m19s".to_string(),
max_versions: 0,
oldest_version: 0,
updated_time: Utc::now(),
custom_metadata: HashMap::new(),
versions: vec![],
}
}