From 87a6543cb9b568b84bbb5ba6e5950df4cc0e2c8b Mon Sep 17 00:00:00 2001 From: Titouan Rigoudy Date: Fri, 24 Nov 2017 13:42:53 -0500 Subject: [PATCH] Add vector serialization test to proto codec. --- src/proto/codec.rs | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/src/proto/codec.rs b/src/proto/codec.rs index 7363704..130cce6 100644 --- a/src/proto/codec.rs +++ b/src/proto/codec.rs @@ -406,4 +406,35 @@ mod tests { assert_eq!(buf.len(), 0); } } + + #[test] + fn encode_u32_vector() { + let mut vec = vec![]; + let mut expected_bytes = vec![13, U32_ENCODINGS.len() as u8, 0, 0, 0]; + for &(val, ref encoded_bytes) in &U32_ENCODINGS { + vec.push(val); + expected_bytes.extend(encoded_bytes); + } + + let mut bytes = vec![13]; + vec.encode(&mut bytes).unwrap(); + + assert_eq!(bytes, expected_bytes); + } + + #[test] + fn decode_u32_vector() { + let mut expected_vec = vec![]; + let mut bytes = vec![U32_ENCODINGS.len() as u8, 0, 0, 0]; + for &(expected_val, ref encoded_bytes) in &U32_ENCODINGS { + expected_vec.push(expected_val); + bytes.extend(encoded_bytes); + } + + let mut buf = EasyBuf::from(bytes); + let vec = Vec::::decode(&mut buf).unwrap(); + + assert_eq!(vec, expected_vec); + assert_eq!(buf.len(), 0); + } }