summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMatthias Beyer <mail@beyermatthias.de>2021-03-28 18:04:41 +0200
committerMatthias Beyer <mail@beyermatthias.de>2022-11-28 17:38:16 +0100
commitb59d4104b59fd89bd7e643a70bdac7bfcb7b11be (patch)
tree45c51a443b58579e31bd4f27696b64100cf87b57
parentb4984bbf586f82cbd8c6ee8c2050e55401906fbb (diff)
Split tests to one test per case
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
-rw-r--r--tests/log.rs47
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);
+}