diff options
author | Alex Crichton <alex@alexcrichton.com> | 2017-07-27 11:29:00 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-07-27 11:29:00 -0500 |
commit | 6b3efa1e0849fbf393e2b41473e807bb644843ea (patch) | |
tree | 7bb58a9c5a5965403f3741f8fdee4cfc0ebd956b /tests/serde.rs | |
parent | 71ac3e25f63edac92b4f6cc4ea709491390796ff (diff) | |
parent | 219de2dd4d60420f810cb60496d41f164e5c06b0 (diff) | |
download | milf-rs-6b3efa1e0849fbf393e2b41473e807bb644843ea.tar.gz milf-rs-6b3efa1e0849fbf393e2b41473e807bb644843ea.zip |
Merge pull request #199 from vitiral/empty-fails
demonstrate failing test for 'empty' values
Diffstat (limited to 'tests/serde.rs')
-rw-r--r-- | tests/serde.rs | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/tests/serde.rs b/tests/serde.rs index c61edf5..57fa5db 100644 --- a/tests/serde.rs +++ b/tests/serde.rs @@ -554,3 +554,25 @@ fn newtypes2() { }), } } + +#[derive(Debug, Default, PartialEq, Serialize, Deserialize)] +struct CanBeEmpty { + a: Option<String>, + b: Option<String>, +} + +#[test] +fn table_structs_empty() { + let text = "[bar]\n\n[baz]\n\n[bazv]\na = \"foo\"\n\n[foo]\n"; + let value: BTreeMap<String, CanBeEmpty> = toml::from_str(text).unwrap(); + let mut expected: BTreeMap<String, CanBeEmpty> = BTreeMap::new(); + expected.insert("bar".to_string(), CanBeEmpty::default()); + expected.insert("baz".to_string(), CanBeEmpty::default()); + expected.insert( + "bazv".to_string(), + CanBeEmpty {a: Some("foo".to_string()), b: None}, + ); + expected.insert("foo".to_string(), CanBeEmpty::default()); + assert_eq!(value, expected); + assert_eq!(toml::to_string(&value).unwrap(), text); +} |