31 lines
1.0 KiB
Rust
31 lines
1.0 KiB
Rust
use std::sync::Arc;
|
|
use application::testing::InMemoryStorageVolumeRepository;
|
|
use application::storage::{RegisterVolumeCommand, RegisterVolumeHandler};
|
|
use domain::errors::DomainError;
|
|
|
|
#[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(_))));
|
|
}
|