diff options
Diffstat (limited to 'tests/file_yaml.rs')
-rw-r--r-- | tests/file_yaml.rs | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/tests/file_yaml.rs b/tests/file_yaml.rs index 233b92c..0ece482 100644 --- a/tests/file_yaml.rs +++ b/tests/file_yaml.rs @@ -91,3 +91,32 @@ fn test_error_parse() { ) ); } + +use std::collections::HashMap; + +#[derive(Debug, Deserialize)] +struct Outer { + inner_string: HashMap<String, Inner>, + inner_int: HashMap<u32, Inner>, +} + +#[derive(Debug, Deserialize)] +struct Inner { + member: String, +} + +#[test] +fn test_yaml_parsing_key() { + let config = Config::builder() + .add_source(File::new("tests/test-keys.yaml", FileFormat::Yaml)) + .build() + .unwrap() + .try_deserialize::<Outer>() + .unwrap(); + assert_eq!(config.inner_int.get(&1).unwrap().member, "Test Int 1"); + assert_eq!(config.inner_int.get(&2).unwrap().member, "Test Int 2"); + assert_eq!( + config.inner_string.get("str_key").unwrap().member, + "Test String" + ); +} |