feat: add test common

This commit is contained in:
2026-07-20 20:31:54 +02:00
parent 428237f351
commit b48a2d7562
+90
View File
@@ -52,3 +52,93 @@ pub(crate) fn validate_bitmask(
Ok(())
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn validate_range_accepts_bounds() {
assert!(validate_range(0u8, 0..=10, || "".into()).is_ok());
assert!(validate_range(10u8, 0..=10, || "".into()).is_ok());
assert!(validate_range(5u8, 0..=10, || "".into()).is_ok());
}
#[test]
fn validate_range_rejects_out_of_range() {
let err = validate_range(11u8, 0..=10, || "bad value".into())
.unwrap_err();
assert!(err.to_string().contains("bad value"));
}
#[test]
fn validate_ascii_padded_accepts_ascii_and_padding() {
assert!(validate_ascii_padded(
b"ABC ",
4,
b' ',
"name",
)
.is_ok());
assert!(validate_ascii_padded(
&[b'A', 0, 0, 0],
4,
0,
"password",
)
.is_ok());
}
#[test]
fn validate_ascii_padded_rejects_wrong_length() {
assert!(validate_ascii_padded(
b"ABC",
4,
b' ',
"name",
)
.is_err());
}
#[test]
fn validate_ascii_padded_rejects_non_ascii() {
assert!(validate_ascii_padded(
&[0xFF, b'A', b'B', b'C'],
4,
b' ',
"name",
)
.is_err());
}
#[test]
fn validate_bitmask_accepts_valid_bits() {
assert!(validate_bitmask(
0b0101,
0b1111,
|| "".into(),
)
.is_ok());
assert!(validate_bitmask(
0,
0b1111,
|| "".into(),
)
.is_ok());
}
#[test]
fn validate_bitmask_rejects_invalid_bits() {
let err = validate_bitmask(
0b10000,
0b01111,
|| "invalid mask".into(),
)
.unwrap_err();
assert!(err.to_string().contains("invalid mask"));
}
}