| use serde_derive::{Deserialize, Serialize}; |
| |
| use config::Config; |
| |
| #[derive(Debug, Serialize, Deserialize)] |
| #[serde(default)] |
| pub struct Settings { |
| pub db_host: String, |
| } |
| |
| impl Default for Settings { |
| fn default() -> Self { |
| Self { |
| db_host: String::from("default"), |
| } |
| } |
| } |
| |
| #[test] |
| fn set_defaults() { |
| let c = Config::default(); |
| let s: Settings = c.try_deserialize().expect("Deserialization failed"); |
| |
| assert_eq!(s.db_host, "default"); |
| } |
| |
| #[test] |
| fn try_from_defaults() { |
| let c = Config::try_from(&Settings::default()).expect("Serialization failed"); |
| let s: Settings = c.try_deserialize().expect("Deserialization failed"); |
| assert_eq!(s.db_host, "default"); |
| } |