Files
k-photos/crates/application/tests/storage/commands/register_volume.rs

36 lines
1.1 KiB
Rust

use application::storage::{RegisterVolumeCommand, RegisterVolumeHandler};
use application::testing::InMemoryStorageVolumeRepository;
use domain::errors::DomainError;
use std::sync::Arc;
#[tokio::test]
async fn creates_volume() {
let repo = Arc::new(InMemoryStorageVolumeRepository::new());
let handler = RegisterVolumeHandler::new(repo);
let vol = handler
.execute(RegisterVolumeCommand {
volume_name: "primary".into(),
uri_prefix: "file:///data".into(),
is_writable: true,
})
.await
.unwrap();
assert_eq!(vol.volume_name, "primary");
assert_eq!(vol.uri_prefix, "file:///data");
assert!(vol.is_writable);
}
#[tokio::test]
async fn rejects_empty_name() {
let repo = Arc::new(InMemoryStorageVolumeRepository::new());
let handler = RegisterVolumeHandler::new(repo);
let result = handler
.execute(RegisterVolumeCommand {
volume_name: "".into(),
uri_prefix: "file:///data".into(),
is_writable: true,
})
.await;
assert!(matches!(result, Err(DomainError::Validation(_))));
}