mod from_hex { mod valid { use git_hash::ObjectId; #[test] fn twenty_hex_chars_lowercase() { assert!(ObjectId::from_hex(b"1234567890abcdefaaaaaaaaaaaaaaaaaaaaaaaa").is_ok()); } #[test] fn twenty_hex_chars_uppercase() { assert!(ObjectId::from_hex(b"1234567890ABCDEFAAAAAAAAAAAAAAAAAAAAAAAA").is_ok()); } } mod invalid { use git_hash::{decode, ObjectId}; #[test] fn non_hex_characters() { assert!(matches!( ObjectId::from_hex(b"zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz").unwrap_err(), decode::Error::Invalid { index: 0, c: 'z' } )); } #[test] fn too_short() { assert!(matches!( ObjectId::from_hex(b"abcd").unwrap_err(), decode::Error::InvalidHexEncodingLength(4) )); } #[test] fn too_long() { assert!(matches!( ObjectId::from_hex(b"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaf").unwrap_err(), decode::Error::InvalidHexEncodingLength(41) )); } }}
mod from_hex {
mod valid {
use git_hash::ObjectId;
#[test]
fn twenty_hex_chars_lowercase() {
assert!(ObjectId::from_hex(b"1234567890abcdefaaaaaaaaaaaaaaaaaaaaaaaa").is_ok());
}
#[test]
fn twenty_hex_chars_uppercase() {
assert!(ObjectId::from_hex(b"1234567890ABCDEFAAAAAAAAAAAAAAAAAAAAAAAA").is_ok());
}
}
mod invalid {
use git_hash::{decode, ObjectId};
#[test]
fn non_hex_characters() {
assert!(matches!(
ObjectId::from_hex(b"zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz").unwrap_err(),
decode::Error::Invalid { index: 0, c: 'z' }
));
}
#[test]
fn too_short() {
assert!(matches!(
ObjectId::from_hex(b"abcd").unwrap_err(),
decode::Error::InvalidHexEncodingLength(4)
));
}
#[test]
fn too_long() {
assert!(matches!(
ObjectId::from_hex(b"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaf").unwrap_err(),
decode::Error::InvalidHexEncodingLength(41)
));
}
}
}