diff options
author | Matthias Beyer <mail@beyermatthias.de> | 2021-03-28 18:04:41 +0200 |
---|---|---|
committer | Matthias Beyer <mail@beyermatthias.de> | 2022-11-28 17:38:16 +0100 |
commit | b59d4104b59fd89bd7e643a70bdac7bfcb7b11be (patch) | |
tree | 45c51a443b58579e31bd4f27696b64100cf87b57 | |
parent | b4984bbf586f82cbd8c6ee8c2050e55401906fbb (diff) |
Split tests to one test per case
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
-rw-r--r-- | tests/log.rs | 47 |
1 files changed, 32 insertions, 15 deletions
diff --git a/tests/log.rs b/tests/log.rs index 5f18bd7..a9eb5bc 100644 --- a/tests/log.rs +++ b/tests/log.rs @@ -13,10 +13,10 @@ struct Settings { } fn config(s: &str) -> Config { - Config::default() - .merge(File::from_str(s, FileFormat::Json)) + Config::builder() + .add_source(File::from_str(s, FileFormat::Json)) + .build() .unwrap() - .clone() } #[test] @@ -28,25 +28,42 @@ 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"); + assert_eq!(c.get_string("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(s); + assert_eq!(c.get_string("log").unwrap(), "error"); + let s = c.try_deserialize::<Settings>(); + assert!(s.is_ok(), "Expected Ok(_) for {:?}", s); + assert_eq!(s.unwrap().log, log::Level::Error); +} |