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 = 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![], } }