use std::collections::HashMap;
pub(crate) fn load_string_records() -> Result<HashMap<String, Vec<String>>, Box<dyn std::error::Error>> {
let json_data = include_str!("../../data/string_records.json");
Ok(serde_json::from_str(json_data)?)
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn test_load_string_records() {
let records = load_string_records();
assert!(records.is_ok());
let records = records.unwrap();
assert!(records.contains_key("WEAP"));
assert!(records.contains_key("ARMO"));
assert!(records.contains_key("BOOK"));
let weap = records.get("WEAP").unwrap();
assert_eq!(weap, &vec!["FULL".to_string(), "DESC".to_string()]);
}
#[test]
fn test_json_format() {
let records = load_string_records().unwrap();
for (key, value) in records.iter() {
assert!(!value.is_empty(), "Record type {} has empty subrecord list", key);
}
}
}