From b59d4104b59fd89bd7e643a70bdac7bfcb7b11be Mon Sep 17 00:00:00 2001 From: Matthias Beyer Date: Sun, 28 Mar 2021 18:04:41 +0200 Subject: Split tests to one test per case Signed-off-by: Matthias Beyer --- tests/log.rs | 47 ++++++++++++++++++++++++++++++++--------------- 1 file 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"); 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::(); + assert!(s.is_ok(), "Expected Ok(_) for {:?}", s); + assert_eq!(s.unwrap().log, log::Level::Error); +} -- cgit v1.2.3