Skip to content

Commit 62b6f26

Browse files
committed
add serialization test for map structure
1 parent 2112dfc commit 62b6f26

File tree

1 file changed

+25
-0
lines changed

1 file changed

+25
-0
lines changed

src/ser/mod.rs

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -534,6 +534,7 @@ impl ser::SerializeStructVariant for Unreachable {
534534

535535
#[cfg(test)]
536536
mod tests {
537+
537538
use super::to_string;
538539
use serde_derive::Serialize;
539540

@@ -983,6 +984,30 @@ mod tests {
983984
);
984985
}
985986

987+
#[test]
988+
fn btree_map() {
989+
use std::collections::BTreeMap;
990+
// empty map
991+
assert_eq!(to_string(&BTreeMap::<(),()>::new()).unwrap(), r#"{}"#);
992+
993+
let mut two_values = BTreeMap::new();
994+
two_values.insert("my_name", "joseph");
995+
two_values.insert("her_name", "aline");
996+
assert_eq!(
997+
to_string(&two_values).unwrap(),
998+
r#"{"her_name":"aline","my_name":"joseph"}"#
999+
);
1000+
1001+
let mut nested_map = BTreeMap::new();
1002+
nested_map.insert("two_entries", two_values.clone());
1003+
1004+
two_values.remove("my_name");
1005+
nested_map.insert("one_entry", two_values);
1006+
assert_eq!(
1007+
to_string(&nested_map).unwrap(),
1008+
r#"{"one_entry":{"her_name":"aline"},"two_entries":{"her_name":"aline","my_name":"joseph"}}"#
1009+
);
1010+
}
9861011
use serde_derive::Deserialize;
9871012

9881013
#[test]

0 commit comments

Comments
 (0)