[−][src]Function cqrs_proptest::arb_events
pub fn arb_events<E: Event + Debug>(
event_strategy: impl Strategy<Value = E>,
size: impl Into<SizeRange>
) -> impl Strategy<Value = Vec<E>>
Produces a strategy to generate an arbitrary vector of events, given a strategy to generate an arbitrary event and a size range.
Examples
use cqrs_core::Event; use cqrs_proptest::arb_events; use proptest::{prelude::*, strategy::ValueTree, test_runner::TestRunner, prop_oneof}; #[derive(Clone, Copy, Debug)] struct CreatedEvent{}; impl Event for CreatedEvent { fn event_type(&self) -> &'static str { "created" } } #[derive(Clone, Copy, Debug)] struct DeletedEvent{}; impl Event for DeletedEvent { fn event_type(&self) -> &'static str { "deleted" } } #[derive(Clone, Copy, Debug)] enum MyEvents { Created(CreatedEvent), Deleted(DeletedEvent), } impl Event for MyEvents { fn event_type(&self) -> &'static str { match *self { MyEvents::Created(ref e) => e.event_type(), MyEvents::Deleted(ref e) => e.event_type(), } } } fn arb_my_events() -> impl Strategy<Value = MyEvents> { prop_oneof![ Just(MyEvents::Created(CreatedEvent{})), Just(MyEvents::Deleted(DeletedEvent{})), ] } arb_events(arb_my_events(), 0..10) .new_tree(&mut TestRunner::default()) .unwrap() .current();