#[cfg(test)] mod tests { use geni_api_v1::Document; use geni_api_v1::Location; use geni_api_v1::Name; use geni_api_v1::Profile; use std::collections::HashMap; use std::fs::read_to_string; fn read_profile_from_file(path: &str) -> Profile { let raw = read_to_string(path).unwrap(); serde_json::from_str::(&raw).unwrap() } fn read_document_from_file(path: &str) -> Document { let raw = read_to_string(path).unwrap(); serde_json::from_str::(&raw).unwrap() } #[test] fn read_profile() { let prof = read_profile_from_file("tests/profile-122248213.json"); assert_eq!( prof, Profile { id: String::from("profile-122248213"), profile_url: String::from( "https://www.geni.com/people/Super-Testy-Tester/6000000012102785219" ), public: false, guid: String::from("6000000012102785219"), first_name: String::from("Super"), middle_name: String::from("Sev"), last_name: String::from("Tester"), display_name: String::from("Super Testy Tester"), name: String::from("Super Testy Tester"), account_type: String::from("basic"), deleted: false, is_curator: false, names: HashMap::from([ ( String::from("en-US"), Name { first_name: String::from("Super"), last_name: String::from("Tester"), middle_name: Some(String::from("Sev")), display_name: String::from("Super Testy Tester"), } ), ( String::from("de"), Name { first_name: String::from("Uber"), last_name: String::from("Testlich"), display_name: String::from("Uber Testlich"), middle_name: None, } ), ( String::from("id"), Name { first_name: String::from("Indonesian"), last_name: String::from("Tester"), display_name: String::from("Indonesian Tester"), middle_name: None, } ) ]), } ); } #[test] fn read_document() { let document = read_document_from_file("tests/document-339953.json"); assert_eq!( document, Document { id: String::from("document-339953"), guid: String::from("6000000011320334348"), created_at: String::from("1296320586"), updated_at: String::from("1417732225"), content_type: String::from("image/png"), public: true, url: String::from("https://www.geni.com/api/document-339953"), title: String::from("Jaworow AGAD Births 1877-96"), description: String::from( "Jewish Records Indexing - Poland\nhttp://www.jewishgen.org/jri-pl/index.htm" ), location: Location { city: String::from("Yavoriv"), state: String::from("L'vivs'ka oblast"), country: String::from("Ukraine"), country_code: String::from("UA"), latitude: 49.9469444, longitude: 23.3930556, formatted_location: String::from("Yavoriv, L'vivs'ka oblast, Ukraine"), } } ); } }