From b89b7f60900e521c80abc294180003eb87b333ab Mon Sep 17 00:00:00 2001 From: Jeremy Wall Date: Wed, 24 Aug 2022 10:30:44 -0400 Subject: [PATCH] Property Tests for serialization deserialization --- src/proptest.rs | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/src/proptest.rs b/src/proptest.rs index e2a0859..b389eb2 100644 --- a/src/proptest.rs +++ b/src/proptest.rs @@ -131,3 +131,23 @@ proptest! { } } } + +#[cfg(feature = "cbor")] +proptest! { + #[test] + fn test_node_serde_strategy(dag in complex_dag_strategy(100, 10, 3)) { + use ciborium::{de::from_reader, ser::into_writer}; + + let nodes = dag.get_nodes(); + for (_, node) in nodes { + let node = node.clone(); + let mut buf: Vec = Vec::new(); + into_writer(&node, &mut buf).unwrap(); + let node_de: Node = from_reader(buf.as_slice()).unwrap(); + assert_eq!(node.id(), node_de.id()); + assert_eq!(node.item_id(), node_de.item_id()); + assert_eq!(node.item(), node_de.item()); + assert_eq!(node.dependency_ids(), node_de.dependency_ids()); + } + } +}