event_graph2: Add unit tests for Event::validate

This commit is contained in:
y
2023-09-08 16:33:58 -04:00
committed by parazyd
parent fb780d73be
commit bb20e05f0c

View File

@@ -105,3 +105,62 @@ impl Event {
!seen.is_empty()
}
}
#[cfg(test)]
mod tests {
use super::*;
fn make_valid_event() -> Event {
Event {
timestamp: UNIX_EPOCH.elapsed().unwrap().as_secs(),
content: vec![1u8],
parents: [
blake3::hash(b"1"),
blake3::hash(b"2"),
blake3::hash(b"3"),
blake3::hash(b"4"),
blake3::hash(b"5"),
],
}
}
#[test]
fn event_is_valid() {
// Validate our test Event struct
assert!(make_valid_event().validate());
}
#[test]
fn invalid_events() {
// TODO: Not checked:
// - "the parent does not recursively reference the event"
let e = make_valid_event();
let mut event_empty_content = e.clone();
event_empty_content.content = vec![];
assert_eq!(event_empty_content.validate(), false);
let mut event_timestamp_too_old = e.clone();
event_timestamp_too_old.timestamp = 0;
assert_eq!(event_timestamp_too_old.validate(), false);
let mut event_timestamp_too_new = e.clone();
event_timestamp_too_new.timestamp = u64::MAX;
assert_eq!(event_timestamp_too_new.validate(), false);
let mut event_duplicated_parents = e.clone();
let duplicated_parents = [
blake3::hash(b"1"),
blake3::hash(b"1"),
blake3::hash(b"3"),
blake3::hash(b"4"),
blake3::hash(b"5"),
];
event_duplicated_parents.parents = duplicated_parents;
assert_eq!(event_duplicated_parents.validate(), false);
let mut event_null_parents = e.clone();
let all_null_parents = [NULL_ID, NULL_ID, NULL_ID, NULL_ID, NULL_ID];
event_null_parents.parents = all_null_parents;
assert_eq!(event_null_parents.validate(), false);
}
}