1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64
pub use near_primitives_core::serialize::*; #[cfg(test)] mod tests { use serde::{Deserialize, Serialize}; use crate::types::StoreKey; use super::*; #[derive(Deserialize, Serialize)] struct OptionBytesStruct { #[serde(with = "option_base64_format")] data: Option<Vec<u8>>, } #[derive(Deserialize, Serialize)] struct StoreKeyStruct { #[serde(with = "base64_format")] store_key: StoreKey, } #[test] fn test_serialize_some() { let s = OptionBytesStruct { data: Some(vec![10, 20, 30]) }; let encoded = serde_json::to_string(&s).unwrap(); assert_eq!(encoded, "{\"data\":\"ChQe\"}"); } #[test] fn test_deserialize_some() { let encoded = "{\"data\":\"ChQe\"}"; let decoded: OptionBytesStruct = serde_json::from_str(&encoded).unwrap(); assert_eq!(decoded.data, Some(vec![10, 20, 30])); } #[test] fn test_serialize_none() { let s = OptionBytesStruct { data: None }; let encoded = serde_json::to_string(&s).unwrap(); assert_eq!(encoded, "{\"data\":null}"); } #[test] fn test_deserialize_none() { let encoded = "{\"data\":null}"; let decoded: OptionBytesStruct = serde_json::from_str(&encoded).unwrap(); assert_eq!(decoded.data, None); } #[test] fn test_serialize_store_key() { let s = StoreKeyStruct { store_key: StoreKey::from(vec![10, 20, 30]) }; let encoded = serde_json::to_string(&s).unwrap(); assert_eq!(encoded, "{\"store_key\":\"ChQe\"}"); } #[test] fn test_deserialize_store_key() { let encoded = "{\"store_key\":\"ChQe\"}"; let decoded: StoreKeyStruct = serde_json::from_str(&encoded).unwrap(); assert_eq!(decoded.store_key, StoreKey::from(vec![10, 20, 30])); } }