28 lines
780 B
Rust
28 lines
780 B
Rust
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(_))));
|
|
}
|