diff --git a/src/common/related_entity.rs b/src/common/related_entity.rs index 8a73677..a5948ed 100644 --- a/src/common/related_entity.rs +++ b/src/common/related_entity.rs @@ -31,4 +31,27 @@ impl<T : HasName> From<T> for RelatedEntity { ..Default::default() } } +} + +#[cfg(test)] +mod test { + use crate::tmf651::agreement::Agreement; + use crate::{HasId,HasName}; + + use super::RelatedEntity; + + const AGREEMENT_NAME : &str = "AnAgreement"; + + #[test] + fn test_relatedentity_from() { + let agreement = Agreement::new(AGREEMENT_NAME); + let agree_ref = &agreement; + + let entity = RelatedEntity::from(agreement.clone()); + + assert_eq!(entity.name,agree_ref.get_name()); + assert_eq!(entity.id,agree_ref.get_id().as_str()); + assert_eq!(entity.href,agree_ref.get_href().as_str()); + assert_eq!(entity.referred_type,Agreement::get_class()); + } } \ No newline at end of file diff --git a/src/tmf667/document.rs b/src/tmf667/document.rs index dd326c3..24458f3 100644 --- a/src/tmf667/document.rs +++ b/src/tmf667/document.rs @@ -120,6 +120,7 @@ impl From<AttachmentRefOrValue> for Document { #[cfg(test)] mod test { use crate::common::attachment::AttachmentRefOrValue; + use crate::tmf651::agreement::Agreement; use super::DocumentStatusType; use super::DOC_VERSION; @@ -129,6 +130,7 @@ mod test { const DOC_NAME : &str = "A Document"; const DOC_TYPE : &str = "PDF"; const DOC_STATE: &str = "\"Created\""; + const AGREEMENT_NAME : &str = "AnAgreement"; #[test] fn test_document_new() { @@ -176,4 +178,15 @@ mod test { assert_eq!(doc.get_name(),attachref.get_name()); } + + #[test] + fn test_document_link() { + let agreement = Agreement::new(AGREEMENT_NAME); + + let document = Document::new(AGREEMENT_NAME) + .link(agreement); + + assert_eq!(document.related_entity.is_some(),true); + assert_eq!(document.related_entity.unwrap().first().is_some(),true); + } } \ No newline at end of file