Răsfoiți Sursa

event_graph2: Add unit tests for Event::validate

y 2 ani în urmă
părinte
comite
bb20e05f0c
1 a modificat fișierele cu 59 adăugiri și 0 ștergeri
  1. 59 0
      src/event_graph2/event.rs

+ 59 - 0
src/event_graph2/event.rs

@@ -105,3 +105,62 @@ impl Event {
         !seen.is_empty()
         !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);
+    }
+}