diff options
Diffstat (limited to 'tests/set.rs')
-rw-r--r-- | tests/set.rs | 111 |
1 files changed, 60 insertions, 51 deletions
diff --git a/tests/set.rs b/tests/set.rs index ac8d5c9..956f123 100644 --- a/tests/set.rs +++ b/tests/set.rs @@ -3,91 +3,100 @@ extern crate config; use config::*; #[test] -fn test_set_scalar() { - let mut c = Config::default(); +fn test_set_override_scalar() { + let mut builder = Config::builder(); - c.set("value", true).unwrap(); + builder.set_override("value", true).unwrap(); - assert_eq!(c.get("value").ok(), Some(true)); + let config = builder.build().unwrap(); + + assert_eq!(config.get("value").ok(), Some(true)); } #[cfg(feature = "toml")] #[test] fn test_set_scalar_default() { - let mut c = Config::default(); + let mut builder = Config::builder(); - c.merge(File::new("tests/Settings", FileFormat::Toml)) + builder + .add_source(File::new("tests/Settings", FileFormat::Toml)) + .set_default("debug", false) + .unwrap() + .set_default("staging", false) .unwrap(); - c.set_default("debug", false).unwrap(); - c.set_default("staging", false).unwrap(); + let config = builder.build().unwrap(); - assert_eq!(c.get("debug").ok(), Some(true)); - assert_eq!(c.get("staging").ok(), Some(false)); + assert_eq!(config.get("debug").ok(), Some(true)); + assert_eq!(config.get("staging").ok(), Some(false)); } #[cfg(feature = "toml")] #[test] fn test_set_scalar_path() { - let mut c = Config::default(); - - c.set("first.second.third", true).unwrap(); - - assert_eq!(c.get("first.second.third").ok(), Some(true)); - - c.merge(File::new("tests/Settings", FileFormat::Toml)) + let mut builder = Config::builder(); + + builder + .set_override("first.second.third", true) + .unwrap() + .add_source(File::new("tests/Settings", FileFormat::Toml)) + .set_default("place.favorite", true) + .unwrap() + .set_default("place.blocked", true) .unwrap(); - c.set_default("place.favorite", true).unwrap(); - c.set_default("place.blocked", true).unwrap(); + let config = builder.build().unwrap(); - assert_eq!(c.get("place.favorite").ok(), Some(false)); - assert_eq!(c.get("place.blocked").ok(), Some(true)); + assert_eq!(config.get("first.second.third").ok(), Some(true)); + assert_eq!(config.get("place.favorite").ok(), Some(false)); + assert_eq!(config.get("place.blocked").ok(), Some(true)); } #[cfg(feature = "toml")] #[test] fn test_set_arr_path() { - let mut c = Config::default(); - - c.set("items[0].name", "Ivan").unwrap(); - - assert_eq!(c.get("items[0].name").ok(), Some("Ivan".to_string())); + let mut builder = Config::builder(); + + builder + .set_override("items[0].name", "Ivan") + .unwrap() + .set_override("data[0].things[1].name", "foo") + .unwrap() + .set_override("data[0].things[1].value", 42) + .unwrap() + .set_override("data[1]", 0) + .unwrap() + .add_source(File::new("tests/Settings", FileFormat::Toml)) + .set_override("items[2]", "George") + .unwrap(); - c.set("data[0].things[1].name", "foo").unwrap(); - c.set("data[0].things[1].value", 42).unwrap(); - c.set("data[1]", 0).unwrap(); + let config = builder.build().unwrap(); + assert_eq!(config.get("items[0].name").ok(), Some("Ivan".to_string())); assert_eq!( - c.get("data[0].things[1].name").ok(), + config.get("data[0].things[1].name").ok(), Some("foo".to_string()) ); - assert_eq!(c.get("data[0].things[1].value").ok(), Some(42)); - assert_eq!(c.get("data[1]").ok(), Some(0)); - - c.merge(File::new("tests/Settings", FileFormat::Toml)) - .unwrap(); - - c.set("items[0].name", "John").unwrap(); - - assert_eq!(c.get("items[0].name").ok(), Some("John".to_string())); - - c.set("items[2]", "George").unwrap(); - - assert_eq!(c.get("items[2]").ok(), Some("George".to_string())); + assert_eq!(config.get("data[0].things[1].value").ok(), Some(42)); + assert_eq!(config.get("data[1]").ok(), Some(0)); + assert_eq!(config.get("items[2]").ok(), Some("George".to_string())); } #[cfg(feature = "toml")] #[test] fn test_set_capital() { - let mut c = Config::default(); + let mut builder = Config::builder(); - c.set_default("this", false).unwrap(); - c.set("ThAt", true).unwrap(); - c.merge(File::from_str("{\"logLevel\": 5}", FileFormat::Json)) - .unwrap(); + builder + .set_default("this", false) + .unwrap() + .set_override("ThAt", true) + .unwrap() + .add_source(File::from_str("{\"logLevel\": 5}", FileFormat::Json)); + + let config = builder.build().unwrap(); - assert_eq!(c.get("this").ok(), Some(false)); - assert_eq!(c.get("ThAt").ok(), Some(true)); - assert_eq!(c.get("logLevel").ok(), Some(5)); + assert_eq!(config.get("this").ok(), Some(false)); + assert_eq!(config.get("ThAt").ok(), Some(true)); + assert_eq!(config.get("logLevel").ok(), Some(5)); } |