#![cfg(feature = "yaml")] use config::{Config, File, FileFormat}; #[test] fn test_file_not_required() { let res = Config::builder() .add_source(File::new("tests/NoSettings", FileFormat::Yaml).required(false)) .build(); assert!(res.is_ok()); } #[test] fn test_file_required_not_found() { let res = Config::builder() .add_source(File::new("tests/NoSettings", FileFormat::Yaml)) .build(); assert!(res.is_err()); assert_eq!( res.unwrap_err().to_string(), "configuration file \"tests/NoSettings\" not found".to_string() ); } #[test] fn test_file_auto() { let c = Config::builder() .add_source(File::with_name("tests/Settings-production")) .build() .unwrap(); assert_eq!(c.get("debug").ok(), Some(false)); assert_eq!(c.get("production").ok(), Some(true)); } #[test] fn test_file_auto_not_found() { let res = Config::builder() .add_source(File::with_name("tests/NoSettings")) .build(); assert!(res.is_err()); assert_eq!( res.unwrap_err().to_string(), "configuration file \"tests/NoSettings\" not found".to_string() ); } #[test] fn test_file_ext() { let c = Config::builder() .add_source(File::with_name("tests/Settings.json")) .build() .unwrap(); assert_eq!(c.get("debug").ok(), Some(true)); assert_eq!(c.get("production").ok(), Some(false)); } #[test] fn test_file_second_ext() { let c = Config::builder() .add_source(File::with_name("tests/Settings2.default")) .build() .unwrap(); assert_eq!(c.get("debug").ok(), Some(true)); assert_eq!(c.get("production").ok(), Some(false)); }