From 26b9bc316d8db76b7840f5598877590310a9f49f Mon Sep 17 00:00:00 2001 From: Andreas Grois Date: Thu, 19 Jan 2023 22:14:49 +0100 Subject: Add unit tests for prefix-password-suffix combine --- src/passwordmaker/mod.rs | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/src/passwordmaker/mod.rs b/src/passwordmaker/mod.rs index 405d469..db01a78 100644 --- a/src/passwordmaker/mod.rs +++ b/src/passwordmaker/mod.rs @@ -328,4 +328,29 @@ impl AlgoSelection { #[allow(clippy::cast_possible_truncation)] //clippy, stop complaining. Truncating is the very purpose of this function... fn yeet_upper_bytes(input : &str) -> impl Iterator + Clone + '_ { input.encode_utf16().map(|wide_char| wide_char as u8) +} + +#[cfg(test)] +mod passwordmaker_tests { + use super::*; + + #[test] + fn test_combine_prefix_password_suffix(){ + let parameters = PasswordAssemblyParameters::from_public_parameters("prefi", "suffi", 15); + let result = combine_prefix_password_suffix(Grapheme::iter_from_str("passwo"), ¶meters); + assert_eq!(&result, "prefipasswsuffi"); + } + #[test] + fn test_combine_prefix_password_suffix_too_short(){ + let parameters = PasswordAssemblyParameters::from_public_parameters("prefi", "suffi", 8); + let result = combine_prefix_password_suffix(Grapheme::iter_from_str("passwo"), ¶meters); + assert_eq!(&result, "presuffi"); + } + + #[test] + fn test_yeet_upper_bytes(){ + let testinput = "€©ĦÆÆ"; + let result = yeet_upper_bytes(testinput).collect::>(); + assert_eq!(result, vec![0xac,0xa9,0x26,0xc6,0xc6]); + } } \ No newline at end of file -- cgit v1.2.3