- delete clippy.toml (too-many-arguments-threshold=20 hack) - ChannelRow/MediaItemRow/LibraryItemRow structs for from_persistence - SnapshotId/ActivityEventId/PlaybackRecordId newtypes - DomainError variants use ChannelId/UserId instead of Uuid - ActivityEvent.channel_id: Option<ChannelId> not Option<Uuid> - InMemory repos key on newtype IDs - AlgorithmicParams struct for schedule engine - update all adapters/application/presentation callers
67 lines
1.6 KiB
Rust
67 lines
1.6 KiB
Rust
use std::sync::Arc;
|
|
|
|
use domain::testing::{InMemoryChannelRepository, NoopEventPublisher};
|
|
use domain::value_objects::{ChannelId, UserId};
|
|
|
|
use crate::channels::commands::CreateChannelCommand;
|
|
use crate::channels::deps::{ChannelCommandDeps, ChannelQueryDeps};
|
|
use crate::channels::queries::GetChannelQuery;
|
|
use crate::channels::{create, get};
|
|
|
|
fn make_deps() -> (ChannelCommandDeps, ChannelQueryDeps) {
|
|
let repo = Arc::new(InMemoryChannelRepository::new());
|
|
let cmd_deps = ChannelCommandDeps {
|
|
channel_command: repo.clone(),
|
|
channel_query: repo.clone(),
|
|
event_publisher: Arc::new(NoopEventPublisher::new()),
|
|
};
|
|
let query_deps = ChannelQueryDeps {
|
|
channel_query: repo,
|
|
};
|
|
(cmd_deps, query_deps)
|
|
}
|
|
|
|
#[tokio::test]
|
|
async fn get_existing_channel() {
|
|
let (cmd_deps, query_deps) = make_deps();
|
|
|
|
let channel = create::execute(
|
|
&cmd_deps,
|
|
CreateChannelCommand {
|
|
owner_id: UserId::generate(),
|
|
name: "Findable".into(),
|
|
timezone: "UTC".into(),
|
|
},
|
|
)
|
|
.await
|
|
.unwrap();
|
|
|
|
let found = get::execute(
|
|
&query_deps,
|
|
GetChannelQuery {
|
|
channel_id: channel.id(),
|
|
},
|
|
)
|
|
.await
|
|
.unwrap();
|
|
|
|
assert!(found.is_some());
|
|
assert_eq!(found.unwrap().name(), "Findable");
|
|
}
|
|
|
|
#[tokio::test]
|
|
async fn get_nonexistent_returns_none() {
|
|
let (_, query_deps) = make_deps();
|
|
|
|
let found = get::execute(
|
|
&query_deps,
|
|
GetChannelQuery {
|
|
channel_id: ChannelId::generate(),
|
|
},
|
|
)
|
|
.await
|
|
.unwrap();
|
|
|
|
assert!(found.is_none());
|
|
}
|