mithril_common/messages/
cardano_database_digest_list.rs1use serde::{Deserialize, Serialize};
2
3use crate::entities::{HexEncodedDigest, ImmutableFileName};
4
5pub type CardanoDatabaseDigestListMessage = Vec<CardanoDatabaseDigestListItemMessage>;
7
8#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)]
10pub struct CardanoDatabaseDigestListItemMessage {
11 pub immutable_file_name: ImmutableFileName,
13
14 pub digest: HexEncodedDigest,
16}
17
18impl CardanoDatabaseDigestListItemMessage {
19 pub fn dummy() -> Self {
21 Self {
22 immutable_file_name: "06685.chunk".to_string(),
23 digest: "0af556ab2620dd9363bf76963a231abe8948a500ea6be31b131d87907ab09b1e".to_string(),
24 }
25 }
26}
27
28#[cfg(test)]
29mod tests {
30 use super::*;
31
32 const CURRENT_JSON: &str = r#"
33 [
34 {
35 "immutable_file_name": "06685.chunk",
36 "digest": "0af556ab2620dd9363bf76963a231abe8948a500ea6be31b131d87907ab09b1e"
37 }
38 ]"#;
39
40 fn golden_current_message() -> CardanoDatabaseDigestListMessage {
41 vec![CardanoDatabaseDigestListItemMessage {
42 immutable_file_name: "06685.chunk".to_string(),
43 digest: "0af556ab2620dd9363bf76963a231abe8948a500ea6be31b131d87907ab09b1e".to_string(),
44 }]
45 }
46
47 #[test]
48 fn test_current_json_deserialized_into_current_message() {
49 let json = CURRENT_JSON;
50 let message: CardanoDatabaseDigestListMessage = serde_json::from_str(json).expect(
51 "This JSON is expected to be successfully parsed into a CardanoDatabaseDigestListMessage instance.",
52 );
53
54 assert_eq!(golden_current_message(), message);
55 }
56}