Struct cqrs_es2::TestFramework [−][src]
pub struct TestFramework<C: ICommand, E: IEvent, A: IAggregate<C, E>> { /* fields omitted */ }
Expand description
A framework for rigorously testing the aggregate logic, one of the most important parts of any CQRS system.
use cqrs_es2::{ example_impl::{ AddCustomerName, Customer, CustomerCommand, CustomerEvent, NameAdded, }, TestFramework, }; type CustomerTestFramework = TestFramework<CustomerCommand, CustomerEvent, Customer>; CustomerTestFramework::default() .given_no_previous_events() .when(CustomerCommand::AddCustomerName( AddCustomerName { changed_name: "John Doe".to_string(), }, )) .then_expect_events(vec![CustomerEvent::NameAdded( NameAdded { changed_name: "John Doe".to_string(), }, )]); CustomerTestFramework::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
Initiates an aggregate test with no previous events.