diff options
author | Matthias Beyer <mail@beyermatthias.de> | 2021-03-28 18:04:41 +0200 |
---|---|---|
committer | Matthias Beyer <mail@beyermatthias.de> | 2021-07-10 15:36:46 +0200 |
commit | 8e8a9d9dea801dbc68324276f486deb512df08e3 (patch) | |
tree | 001a3d7e839b95b595f473ab52007f8dbe7fc995 | |
parent | 8010e39166305034643abaca66892a3f67f24d3e (diff) |
Split tests to one test per caselog-deser
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
-rw-r--r-- | tests/log.rs | 43 |
1 files changed, 32 insertions, 11 deletions
diff --git a/tests/log.rs b/tests/log.rs index 5f18bd7..0ebcb5a 100644 --- a/tests/log.rs +++ b/tests/log.rs @@ -28,25 +28,46 @@ fn test_load_level_uppercase() { } #[test] -fn test_load_level_lowercase() { +fn test_case_sensitivity_log_level_from_str() { // to verify that this works - { - use std::str::FromStr; - let l = log::Level::from_str("error").unwrap(); - assert_eq!(l, log::Level::Error); - } - let s = r#"{ "log": "error" }"#; + use std::str::FromStr; + let l = log::Level::from_str("error").unwrap(); + assert_eq!(l, log::Level::Error); +} +#[test] +fn test_case_sensitivity_json_from_str() { // to confirm serde_json works as expected - { - let j: Settings = serde_json::from_str(s).unwrap(); - assert_eq!(j.log, log::Level::Error); - } + let s = r#"{ "log": "error" }"#; + + let j: Settings = serde_json::from_str(s).unwrap(); + assert_eq!(j.log, log::Level::Error); +} + +#[test] +#[should_panic(expected = "Expected Ok(_) for Err(enum Level does not have variant constructor error)")] +fn test_load_level_lowercase_failing() { + // The following should fail because case sensitivity is not disabled + let s = r#"{ "log": "error" }"#; let c = config(s); assert_eq!(c.get_str("log").unwrap(), "error"); let l = c.get::<log::Level>("log"); assert!(l.is_ok(), "Expected Ok(_) for {:?}", l); assert_eq!(l.unwrap(), log::Level::Error); } + +#[test] +fn test_load_level_lowercase_succeeding() { + let s = r#"{ "log": "error" }"#; + let c = Config::default() + .with_enum_variants_case_sensitive(false) + .merge(File::from_str(s, FileFormat::Json)) + .unwrap() + .clone(); + assert_eq!(c.get_str("log").unwrap(), "error"); + let s = c.try_into::<Settings>(); + assert!(s.is_ok(), "Expected Ok(_) for {:?}", s); + assert_eq!(s.unwrap().log, log::Level::Error); +} |