summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMatthias Beyer <mail@beyermatthias.de>2018-04-25 14:08:25 +0200
committerMatthias Beyer <mail@beyermatthias.de>2018-04-27 09:44:45 +0200
commita343716e4d572cac9c096dd74cf271d471cef5df (patch)
treedbe084d640d72f32ab00232a5dad2be0815fd9fc
parent5bd59a09f4ef85bbc244e4c9c9a1acbef8d96573 (diff)
Add simple setter test
-rw-r--r--src/set.rs44
1 files changed, 44 insertions, 0 deletions
diff --git a/src/set.rs b/src/set.rs
index c18549c..ac8d63a 100644
--- a/src/set.rs
+++ b/src/set.rs
@@ -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),
+ }
+
+ }
+
}