From 2346f06d23ec733a1f15486faa4b63970be4575a Mon Sep 17 00:00:00 2001 From: Rostyslav Tyshko Date: Fri, 16 May 2025 18:39:39 -0400 Subject: [PATCH] add a test --- common/src/merkle_tree_public/merkle_tree.rs | 22 ++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/common/src/merkle_tree_public/merkle_tree.rs b/common/src/merkle_tree_public/merkle_tree.rs index d769218..21275d3 100644 --- a/common/src/merkle_tree_public/merkle_tree.rs +++ b/common/src/merkle_tree_public/merkle_tree.rs @@ -1,4 +1,4 @@ -use std::collections::HashMap; +use std::{collections::HashMap, fmt, marker::PhantomData}; use rs_merkle::{MerkleProof, MerkleTree}; use serde::{de::{self, SeqAccess, Visitor}, ser::SerializeSeq, Deserialize, Deserializer, Serialize}; @@ -162,7 +162,7 @@ mod tests { use super::*; // Mock implementation of TreeLeavItem trait for testing - #[derive(Debug, Clone, PartialEq, Eq, Hash)] + #[derive(Debug, Clone, PartialEq, Eq, Hash, Serialize, Deserialize)] struct MockTransaction { pub hash: TreeHashType, } @@ -197,6 +197,24 @@ mod tests { assert!(tree.get_root().is_some()); } + #[test] + fn test_new_merkle_tree_serialize() { + let tx1 = MockTransaction { + hash: get_first_32_bytes("tx1"), + }; + let tx2 = MockTransaction { + hash: get_first_32_bytes("tx2"), + }; + + let tree = HashStorageMerkleTree::new(vec![tx1.clone(), tx2.clone()]); + + let binding = serde_json::to_vec(&tree).unwrap(); + + let obj: HashStorageMerkleTree = serde_json::from_slice(&binding).unwrap(); + + assert_eq!(tree.leaves, obj.leaves); + } + #[test] fn test_get_tx() { let tx1 = MockTransaction {