Struct cqrs_es2::HandlerTester [−][src]
pub struct HandlerTester<C: ICommand, E: IEvent, A: Default + ICommandHandler<C, E> + IEventHandler<E>> { /* fields omitted */ }
Expand description
HandlerTester
provides a consistent way to test aggregate
implementations
Examples
use cqrs_es2::{
example_impl::{
AddCustomerName,
Customer,
CustomerCommand,
CustomerEvent,
NameAdded,
},
HandlerTester,
};
type CustomTester =
HandlerTester<CustomerCommand, CustomerEvent, Customer>;
CustomTester::default()
.given_no_previous_events()
.when(CustomerCommand::AddCustomerName(
AddCustomerName {
changed_name: "John Doe".to_string(),
},
))
.then_expect(vec![CustomerEvent::NameAdded(
NameAdded {
changed_name: "John Doe".to_string(),
},
)]);
CustomTester::default()
.given(vec![CustomerEvent::NameAdded(
NameAdded {
changed_name: "John Doe".to_string(),
},
)])
.when(CustomerCommand::AddCustomerName(
AddCustomerName {
changed_name: "John Doe".to_string(),
},
))
.then_expect_error(
"a name has already been added for this customer",
)
Implementations
impl<C: ICommand, E: IEvent, A: Default + ICommandHandler<C, E> + IEventHandler<E>> HandlerTester<C, E, A>
impl<C: ICommand, E: IEvent, A: Default + ICommandHandler<C, E> + IEventHandler<E>> HandlerTester<C, E, A>
Initiates a handler test with no previous events