Add tests to confid

This commit is contained in:
Alex Page 2023-06-23 17:04:34 -04:00
parent d00fbb9882
commit 7bd191e6be

View file

@ -4,7 +4,7 @@ use thiserror::Error;
mod black_box;
#[derive(Error, Debug)]
#[derive(Error, Debug, PartialEq, Eq)]
pub enum ConfirmationIdError {
#[error("Installation ID is too short.")]
TooShort,
@ -47,3 +47,32 @@ pub fn generate(installation_id: &str) -> Result<String, ConfirmationIdError> {
.to_string())
}
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn test_generate() {
assert_eq!(
generate("334481558826870862843844566221823392794862457401103810").unwrap(),
"110281-200130-887120-647974-697175-027544-252733"
);
assert!(
generate("33448155882687086284384456622182339279486245740110381")
.is_err_and(|err| err == ConfirmationIdError::TooShort),
);
assert!(
generate("3344815588268708628438445662218233927948624574011038100")
.is_err_and(|err| err == ConfirmationIdError::TooLarge),
);
assert!(
generate("33448155882687086284384456622182339279486245740110381!")
.is_err_and(|err| err == ConfirmationIdError::InvalidCharacter),
);
assert!(
generate("334481558826870862843844566221823392794862457401103811")
.is_err_and(|err| err == ConfirmationIdError::InvalidCheckDigit),
);
}
}