use crate::v1_1::data_types::text::dv_text::DvText;
use crate::v1_1::demographic::party_relationship::PartyRelationship;
impl PartyRelationship {
#[must_use]
pub fn r#type(&self) -> &DvText {
&self.name
}
}
#[cfg(test)]
mod tests {
use super::*;
use crate::v1_1::data_types::text::dv_text::DvTextData;
use openehr_base::v1_2::base_types::identification::hier_object_id::HierObjectId;
use openehr_base::v1_2::base_types::identification::object_id::ObjectId;
use openehr_base::v1_2::base_types::identification::party_ref::PartyRef;
fn text(value: &str) -> DvText {
DvText::DvText(DvTextData {
value: value.to_owned(),
hyperlink: None,
formatting: None,
mappings: openehr_base::containers::present_nonempty(Vec::new()),
language: None,
encoding: None,
})
}
fn party_ref(uuid: &str) -> Option<PartyRef> {
Some(PartyRef {
namespace: "demographic".to_owned(),
r#type: "PERSON".to_owned(),
id: ObjectId::HierObjectId(HierObjectId::new(uuid.to_owned()).ok()?),
})
}
fn relationship(name: &str) -> Option<PartyRelationship> {
Some(PartyRelationship {
name: text(name),
archetype_node_id: "openEHR-DEMOGRAPHIC-PARTY_RELATIONSHIP.employment.v1".to_owned(),
uid: None,
links: None,
archetype_details: None,
feeder_audit: None,
details: None,
target: party_ref("11111111-1111-4111-8111-111111111111")?,
time_validity: None,
source: party_ref("22222222-2222-4222-8222-222222222222")?,
})
}
#[test]
fn the_type_is_the_name() {
for name in ["employment", "health provision", ""] {
let relationship = relationship(name).expect("well-formed party identifiers");
assert_eq!(relationship.r#type(), &relationship.name);
}
}
}