diff options
author | Matthias Beyer <mail@beyermatthias.de> | 2018-04-25 14:08:25 +0200 |
---|---|---|
committer | Matthias Beyer <mail@beyermatthias.de> | 2018-04-27 09:44:45 +0200 |
commit | a343716e4d572cac9c096dd74cf271d471cef5df (patch) | |
tree | dbe084d640d72f32ab00232a5dad2be0815fd9fc | |
parent | 5bd59a09f4ef85bbc244e4c9c9a1acbef8d96573 (diff) |
Add simple setter test
-rw-r--r-- | src/set.rs | 44 |
1 files changed, 44 insertions, 0 deletions
@@ -415,5 +415,49 @@ mod test { assert!(is_match!(res.kind(), &ErrorKind::QueryingValueAsArray(_))); } + #[cfg(feature = "typed")] + #[test] + fn test_serialize() { + use std::collections::BTreeMap; + use insert::TomlValueInsertExt; + use read::TomlValueReadExt; + + #[derive(Serialize, Deserialize, Debug)] + struct Test { + a: u64, + s: String, + } + + let mut toml = Value::Table(BTreeMap::new()); + let test = Test { + a: 15, + s: String::from("Helloworld"), + }; + + assert!(toml.insert_serialized("table.value", test).unwrap().is_none()); + + eprintln!("{:#}", toml); + + match toml { + Value::Table(ref tab) => match tab.get("table").unwrap() { + &Value::Table(ref inner) => { + match inner.get("value").unwrap() { + &Value::Table(ref data) => { + assert!(is_match!(data.get("a").unwrap(), &Value::Integer(15))); + match data.get("s").unwrap() { + &Value::String(ref s) => assert_eq!(s, "Helloworld"), + _ => assert!(false), + }; + } + _ => assert!(false), + } + }, + _ => assert!(false) + }, + _ => assert!(false), + } + + } + } |