use crate::v1_2::data_types::text::dv_text::DvText;
use crate::v1_2::demographic::party_identity::PartyIdentity;
impl PartyIdentity {
#[must_use]
pub fn purpose(&self) -> &DvText {
&self.name
}
}
#[cfg(test)]
mod tests {
use super::*;
use crate::v1_2::data_structures::item_structure::item_structure::ItemStructure;
use crate::v1_2::data_structures::item_structure::item_tree::ItemTree;
use crate::v1_2::data_types::text::dv_text::DvTextData;
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 identity(name: &str) -> PartyIdentity {
PartyIdentity {
name: text(name),
archetype_node_id: "openEHR-DEMOGRAPHIC-PARTY_IDENTITY.person_name.v1".to_owned(),
uid: None,
links: None,
archetype_details: None,
feeder_audit: None,
details: ItemStructure::ItemTree(Box::new(ItemTree {
name: text("tree"),
archetype_node_id: "at0001".to_owned(),
uid: None,
links: None,
archetype_details: None,
feeder_audit: None,
items: None,
})),
}
}
#[test]
fn the_purpose_is_the_name() {
for name in ["legal", "nickname", ""] {
let identity = identity(name);
assert_eq!(identity.purpose(), &identity.name);
}
}
}