ignis_nostr/
lib.rs

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}