[wip] unit tests

- re-added redundant `tests` submodules for good form
This commit is contained in:
Jörn-Michael Miehe 2025-07-14 20:58:28 +00:00
parent 22eeada52a
commit 66f59b4b3b
2 changed files with 71 additions and 59 deletions

View file

@ -109,68 +109,74 @@ impl From<bool> for FileID {
} }
} }
#[test] // technically redundant, but kept for refactoring purposes
fn true_makes_valids() { #[cfg(test)]
let uri = Uri::from(true); mod tests {
let alias_id = AliasID::from(true); use super::*;
let share_id = ShareID::from(true);
let file_id = FileID::from(true);
assert!((&uri, &alias_id).check().is_ok()); #[test]
assert!(share_id.check().is_ok()); fn true_makes_valids() {
assert!((&share_id, &file_id).check().is_ok()); let uri = Uri::from(true);
} let alias_id = AliasID::from(true);
let share_id = ShareID::from(true);
let file_id = FileID::from(true);
#[test] assert!((&uri, &alias_id).check().is_ok());
fn default_is_valid() { assert!(share_id.check().is_ok());
let uri = Uri::default(); assert!((&share_id, &file_id).check().is_ok());
let alias_id = AliasID::from(true); // no `impl Default`
let share_id = ShareID::default();
let file_id = FileID::default();
assert!((&uri, &alias_id).check().is_ok());
assert!(share_id.check().is_ok());
assert!((&share_id, &file_id).check().is_ok());
}
#[test]
fn false_makes_invalids() {
use crate::Parameter;
fn test_check(value: impl CheckID, callback: impl FnOnce(&Parameter) -> bool) {
let check = value.check().unwrap_err();
let p = check.get_invalid_param().unwrap();
assert!(callback(p));
} }
// valid ids #[test]
let uri = Uri::from(true); fn default_is_valid() {
let alias_id = AliasID::from(true); let uri = Uri::default();
let share_id = ShareID::from(true); let alias_id = AliasID::from(true); // no `impl Default`
let file_id = FileID::from(true); let share_id = ShareID::default();
let file_id = FileID::default();
// invalid ids assert!((&uri, &alias_id).check().is_ok());
let uri_i = Uri::from(false); assert!(share_id.check().is_ok());
let alias_id_i = AliasID::from(false); assert!((&share_id, &file_id).check().is_ok());
let share_id_i = ShareID::from(false); }
let file_id_i = FileID::from(false);
// param checks #[test]
let is_uri_i = |p: &Parameter| matches!(p, Parameter::Uri(_)); fn false_makes_invalids() {
let is_alias_id_i = |p: &Parameter| matches!(p, Parameter::AliasID(_)); use crate::Parameter;
let is_share_id_i = |p: &Parameter| matches!(p, Parameter::ShareID(_));
let is_file_id_i = |p: &Parameter| matches!(p, Parameter::FileID(_));
// uri + alias fn test_check(value: impl CheckID, callback: impl FnOnce(&Parameter) -> bool) {
test_check((&uri_i, &alias_id_i), is_uri_i); let check = value.check().unwrap_err();
test_check((&uri_i, &alias_id), is_uri_i); let p = check.get_invalid_param().unwrap();
test_check((&uri, &alias_id_i), is_alias_id_i); assert!(callback(p));
}
// share // valid ids
test_check(&share_id_i, is_share_id_i); let uri = Uri::from(true);
let alias_id = AliasID::from(true);
let share_id = ShareID::from(true);
let file_id = FileID::from(true);
// share + file // invalid ids
test_check((&share_id_i, &file_id_i), is_share_id_i); let uri_i = Uri::from(false);
test_check((&share_id_i, &file_id), is_share_id_i); let alias_id_i = AliasID::from(false);
test_check((&share_id, &file_id_i), is_file_id_i); let share_id_i = ShareID::from(false);
let file_id_i = FileID::from(false);
// param checks
let is_uri_i = |p: &Parameter| matches!(p, Parameter::Uri(_));
let is_alias_id_i = |p: &Parameter| matches!(p, Parameter::AliasID(_));
let is_share_id_i = |p: &Parameter| matches!(p, Parameter::ShareID(_));
let is_file_id_i = |p: &Parameter| matches!(p, Parameter::FileID(_));
// uri + alias
test_check((&uri_i, &alias_id_i), is_uri_i);
test_check((&uri_i, &alias_id), is_uri_i);
test_check((&uri, &alias_id_i), is_alias_id_i);
// share
test_check(&share_id_i, is_share_id_i);
// share + file
test_check((&share_id_i, &file_id_i), is_share_id_i);
test_check((&share_id_i, &file_id), is_share_id_i);
test_check((&share_id, &file_id_i), is_file_id_i);
}
} }

View file

@ -29,8 +29,14 @@ pub fn create_file(data: &[u8]) -> NamedTempFile {
tmp tmp
} }
#[test] // technically redundant, but kept for refactoring purposes
#[should_panic = "`impl foo for bar` expected: 1, actual: 0"] #[cfg(test)]
fn make_check_trait_panic() { mod tests {
check_trait(0, 1, "foo", "bar"); use super::*;
#[test]
#[should_panic = "`impl foo for bar` expected: 1, actual: 0"]
fn make_check_trait_panic() {
check_trait(0, 1, "foo", "bar");
}
} }