From 7bd191e6beacc27b7cbdbfdb438e0644c38d2c21 Mon Sep 17 00:00:00 2001 From: Alex Page Date: Fri, 23 Jun 2023 17:04:34 -0400 Subject: [PATCH] Add tests to confid --- src/confid/mod.rs | 31 ++++++++++++++++++++++++++++++- 1 file changed, 30 insertions(+), 1 deletion(-) diff --git a/src/confid/mod.rs b/src/confid/mod.rs index 63dc290..077c2f5 100644 --- a/src/confid/mod.rs +++ b/src/confid/mod.rs @@ -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 { .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), + ); + } +}