summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMatthias Beyer <mail@beyermatthias.de>2021-03-28 18:04:41 +0200
committerMatthias Beyer <mail@beyermatthias.de>2021-07-10 15:36:46 +0200
commit8e8a9d9dea801dbc68324276f486deb512df08e3 (patch)
tree001a3d7e839b95b595f473ab52007f8dbe7fc995
parent8010e39166305034643abaca66892a3f67f24d3e (diff)
Split tests to one test per caselog-deser
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
-rw-r--r--tests/log.rs43
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);
+}