pub mod types;
pub mod dwc;
pub mod export;
#[cfg(test)]
mod tests {
use super::*;
use serde::{Serialize, Deserialize};
use serde_json::json;
#[derive(Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
struct DummyProject {
uuid: String,
name: String,
unmapped_field: Option<String>,
null_field: Option<String>,
}
#[test]
fn test_json_conversion() {
let project = DummyProject {
uuid: "1234-5678".to_string(),
name: "My Project".to_string(),
unmapped_field: Some("Data".to_string()),
null_field: None,
};
let result = export::json::convert_to_dwc_json("project", &project).unwrap();
assert_eq!(result["dcterms:identifier"], json!("1234-5678"));
assert_eq!(result["dwc:datasetName"], json!("My Project"));
assert_eq!(result["unmappedField"], json!("Data")); assert!(result.get("nullField").is_none()); }
}