diff options
Diffstat (limited to 'tests/merge.rs')
-rw-r--r-- | tests/merge.rs | 40 |
1 files changed, 21 insertions, 19 deletions
diff --git a/tests/merge.rs b/tests/merge.rs index 1be7db1..5bb84da 100644 --- a/tests/merge.rs +++ b/tests/merge.rs @@ -5,14 +5,11 @@ extern crate config; use config::*; fn make() -> Config { - let mut c = Config::default(); - c.merge(File::new("tests/Settings", FileFormat::Toml)) - .unwrap(); - - c.merge(File::new("tests/Settings-production", FileFormat::Toml)) - .unwrap(); - - c + let mut builder = Config::builder(); + builder + .add_source(File::new("tests/Settings", FileFormat::Toml)) + .add_source(File::new("tests/Settings-production", FileFormat::Toml)); + builder.build().unwrap() } #[test] @@ -30,20 +27,25 @@ fn test_merge() { #[test] fn test_merge_whole_config() { - let mut c1 = Config::default(); - let mut c2 = Config::default(); + let mut builder1 = Config::builder(); + let mut builder2 = Config::builder(); + + builder1.set_override("x", 10).unwrap(); + builder2.set_override("y", 25).unwrap(); + + let config1 = builder1.build_cloned().unwrap(); + let config2 = builder2.build_cloned().unwrap(); - c1.set("x", 10).unwrap(); - c2.set("y", 25).unwrap(); + assert_eq!(config1.get("x").ok(), Some(10)); + assert_eq!(config2.get::<()>("x").ok(), None); - assert_eq!(c1.get("x").ok(), Some(10)); - assert_eq!(c2.get::<()>("x").ok(), None); + assert_eq!(config2.get("y").ok(), Some(25)); + assert_eq!(config1.get::<()>("y").ok(), None); - assert_eq!(c2.get("y").ok(), Some(25)); - assert_eq!(c1.get::<()>("y").ok(), None); + builder1.add_source(config2); - c1.merge(c2).unwrap(); + let config3 = builder1.build().unwrap(); - assert_eq!(c1.get("x").ok(), Some(10)); - assert_eq!(c1.get("y").ok(), Some(25)); + assert_eq!(config3.get("x").ok(), Some(10)); + assert_eq!(config3.get("y").ok(), Some(25)); } |