1mod fhir_trait;
2
3pub use fhir_rs::*;
4pub use fhir_trait::IgnisResource;
5
6#[cfg(test)]
7mod tests {
8
9 use crate::fhir_trait::IgnisResource;
10 use fhir_rs::prelude::{Convert, HumanName, Practitioner};
11 use nostro2::keypair::NostrKeypair;
12 #[test]
13 fn test_practitioner() {
14 let human_name = HumanName::default()
15 .set_given(vec!["John".into()])
16 .set_family("Doe");
17 let practitioner = Practitioner::default().set_name(vec![human_name]);
18 let ignis_resource = IgnisResource::new(practitioner);
19 println!("{:?}", ignis_resource);
20 let name = ignis_resource.resource.name.clone().unwrap();
21 let name = name.first().clone().unwrap();
22 println!("{:?}", name);
23
24 let given: String = name
25 .given
26 .clone()
27 .unwrap()
28 .first()
29 .clone()
30 .unwrap()
31 .to_strings()
32 .unwrap();
33 println!("{:?}", given);
34 let family: String = name.family.clone().unwrap().to_string();
35 assert_eq!(given, "John".to_string());
36 assert_eq!(family, "Doe".to_string());
37 }
38
39 #[test]
40 fn test_ignis_resource() {
41 let human_name = HumanName::default()
42 .set_given(vec!["John".into()])
43 .set_family("Doe");
44 let practitioner = Practitioner::default().set_name(vec![human_name]);
45 let mut ignis_resource = IgnisResource::new(practitioner);
46 let keys = NostrKeypair::generate(true);
47 let signed_note = ignis_resource.signed_resource(&keys).unwrap();
48 let ignis_resource = IgnisResource::<Practitioner>::try_from(signed_note).unwrap();
49 println!("{:?}", ignis_resource);
50 let name = ignis_resource.resource.name.clone().unwrap();
51 let name = name.first().clone().unwrap();
52 println!("{:?}", name);
53 let given: String = name
54 .given
55 .clone()
56 .unwrap()
57 .first()
58 .clone()
59 .unwrap()
60 .to_strings()
61 .unwrap();
62 println!("{:?}", given);
63 let family: String = name.family.clone().unwrap().to_string();
64 assert_eq!(given, "John".to_string());
65 assert_eq!(family, "Doe".to_string());
66 }
67}