feat: add test common
This commit is contained in:
@@ -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"));
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user