nahpu_dwc 0.1.0

A utility crate for mapping and converting Nahpu project data into Darwin Core JSON format.
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")); // Falls back to original camelCase name
        assert!(result.get("nullField").is_none()); // Nulls are excluded
    }
}