mirror of
https://github.com/darkrenaissance/darkfi.git
synced 2026-01-10 07:08:05 -05:00
event_graph2: Add unit tests for Event::validate
This commit is contained in:
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user