use domain::entities::{LinkAccessLevel, ShareLink}; use domain::value_objects::SystemId; #[test] fn new_link_is_valid() { let link = ShareLink::new(SystemId::new(), "tok123", LinkAccessLevel::ViewOnly); assert!(link.is_valid()); assert_eq!(link.use_count, 0); } #[test] fn deactivated_invalid() { let mut link = ShareLink::new(SystemId::new(), "tok123", LinkAccessLevel::ViewOnly); link.deactivate(); assert!(!link.is_valid()); } #[test] fn max_uses_exhausted() { let mut link = ShareLink::new(SystemId::new(), "tok123", LinkAccessLevel::ViewOnly); link.max_uses = Some(2); link.record_use(); link.record_use(); assert!(!link.is_valid()); }