1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 |
- /// Tests which ensure that the main data structures can be round-tripped faithfully.
- use super::*;
- use crypto::Hash;
- use serde_block_tree::{Error, Result, from_vec, to_vec};
- use test_helpers::*;
- #[test]
- fn roundtrip_fragment_record() -> Result<()> {
- let expected = FragmentRecord::new(229, Hash::Sha2_256(PRINCIPAL));
- let ser_result = to_vec(&expected);
- let de_result = from_vec(&ser_result?);
- assert_eq!(expected, de_result?);
- Ok(())
- }
- #[test]
- fn roundtrip_directory() -> Result<()> {
- let principal = Principal(Hash::Sha2_256(PRINCIPAL));
- let mut child = HashMap::new();
- child.insert(FragmentSerial(0), FragmentRecord::new(0, principal.0));
- let mut children = HashMap::new();
- children.insert(".metadata".to_string(), child);
- let expected = Directory {
- nodes: vec![Principal(Hash::Sha2_256(PRINCIPAL))],
- children
- };
- let ser_result = to_vec(&expected);
- let de_result = from_vec(&ser_result?);
- assert_eq!(expected, de_result?);
- Ok(())
- }
- #[test]
- fn roundtrip_fragment() -> Result<()> {
- let body = Vec::from(PAYLOAD);
- let path = make_path(vec!["apps", "bohdi"]);
- let expected = Fragment::new(path.to_string().as_str(), 42, body)
- .map_err(|err| Error::Message(err.to_string()))?;
- let ser_result = to_vec(&expected);
- let de_result = from_vec(&ser_result?);
- assert_eq!(expected, de_result?);
- Ok(())
- }
- #[test]
- fn roundtrip_write_cap() -> Result<()> {
- let expected = make_writecap()?;
- let ser_result = to_vec(&expected);
- let de_result = from_vec(&ser_result?);
- assert_eq!(expected, de_result?);
- Ok(())
- }
- #[test]
- fn roundtrip_read_cap() -> Result<()> {
- let expected = make_readcap();
- let ser_result = to_vec(&expected);
- let de_result = from_vec(&ser_result?);
- assert_eq!(expected, de_result?);
- Ok(())
- }
- #[test]
- fn roundtrip_versioned_block() -> Result<()> {
- let expected = VersionedBlock::V0(make_block()?);
- let ser_result = to_vec(&expected);
- let de_result = from_vec(&ser_result?);
- assert_eq!(expected, de_result?);
- Ok(())
- }
|