use auths_keri::Prefix;
use super::hash::EventHash;
use super::provider::WitnessProvider;
#[derive(Debug, Clone, Copy, Default)]
pub struct NoOpWitness;
impl NoOpWitness {
pub fn new() -> Self {
Self
}
}
impl WitnessProvider for NoOpWitness {
fn observe_identity_head(&self, _prefix: &Prefix) -> Option<EventHash> {
None
}
fn quorum(&self) -> usize {
0 }
fn is_enabled(&self) -> bool {
false
}
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn test_noop_returns_none() {
let witness = NoOpWitness;
let prefix = Prefix::new_unchecked("ETestPrefix".into());
assert!(witness.observe_identity_head(&prefix).is_none());
}
#[test]
fn test_noop_is_disabled() {
let witness = NoOpWitness;
assert!(!witness.is_enabled());
}
#[test]
fn test_noop_quorum_is_zero() {
let witness = NoOpWitness;
assert_eq!(witness.quorum(), 0);
}
#[test]
fn test_noop_is_send_sync() {
fn assert_send_sync<T: Send + Sync>() {}
assert_send_sync::<NoOpWitness>();
}
}