use core::panic;
use super::{Dispatch, Event};
pub struct TestDispatch;
impl Dispatch for TestDispatch {
fn emit(&self, event: Event) {
match event {
Event::RegisterEntry(_) => {
}
Event::EmitEntry { entry, condition, details } => {
if !entry.expectation().check(condition) {
tracing::error!(
details = format!("{}", details),
location = ?entry.location(),
module = ?entry.module(),
function = ?entry.function(),
"expectation {:?} failed: {}",
entry.expectation(),
entry.property()
);
panic!("expectation failed")
}
}
Event::SetupComplete { details } => {
tracing::info!(
details = serde_json::to_string(&details).unwrap(),
"setup complete"
)
}
Event::Custom { name, value } => {
tracing::info!(
name,
value = serde_json::to_string(&value).unwrap(),
"custom event"
)
}
}
}
fn random(&self) -> u64 {
rand::random()
}
}