use domain::entities::Album; use domain::errors::DomainError; use domain::value_objects::SystemId; #[test] fn add_and_remove_asset() { let mut album = Album::new("Vacation", SystemId::new()); let asset = SystemId::new(); let user = SystemId::new(); album.add_asset(asset.clone(), user.clone()).unwrap(); assert_eq!(album.asset_count(), 1); album.remove_asset(&asset).unwrap(); assert_eq!(album.asset_count(), 0); } #[test] fn cannot_add_duplicate() { let mut album = Album::new("Vacation", SystemId::new()); let asset = SystemId::new(); let user = SystemId::new(); album.add_asset(asset.clone(), user.clone()).unwrap(); let result = album.add_asset(asset, user); assert!(matches!(result, Err(DomainError::Conflict(_)))); }