From fa56c3d95357200ab17610b722c3419885ef3391 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sosth=C3=A8ne=20Gu=C3=A9don?= Date: Fri, 8 Dec 2023 14:00:09 +0100 Subject: [PATCH] Add tests --- Cargo.toml | 3 +++ src/lib.rs | 27 +++++++++++++++++++++++++++ 2 files changed, 30 insertions(+) diff --git a/Cargo.toml b/Cargo.toml index e1ef724..56c7b8d 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -22,3 +22,6 @@ optional = true [features] cbor = ["serde_cbor"] + +[dev-dependencies] +serde_test = "1.0.176" diff --git a/src/lib.rs b/src/lib.rs index 41cbab7..f42e59f 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -389,6 +389,33 @@ impl<'de, const N: usize> Deserialize<'de> for Bytes { } } +#[cfg(test)] +mod tests_serde { + use super::*; + use serde_test::{assert_tokens, Token}; + + #[test] + fn all() { + let mut bytes = Bytes::<0>::new(); + assert!(bytes.push(1).is_err()); + assert_tokens(&bytes, &[Token::Bytes(&[])]); + + let mut bytes = Bytes::<16>::new(); + bytes.push(1).unwrap(); + assert_tokens(&bytes, &[Token::Bytes(&[1])]); + assert!(bytes.extend_from_slice(&[2; 16]).is_err()); + assert_eq!(&**bytes, &[1]); + assert!(bytes.extend_from_slice(&[2; 15]).is_ok()); + assert_eq!(&**bytes, &[1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2]); + assert_tokens( + &bytes, + &[Token::Bytes(&[ + 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + ])], + ); + } +} + #[cfg(test)] #[cfg(feature = "cbor")] mod tests {