Skip to content

Commit 4fb477f

Browse files
committed
Add some simple serde tests
1 parent 086d68d commit 4fb477f

File tree

1 file changed

+56
-0
lines changed

1 file changed

+56
-0
lines changed

tests/serde.rs

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
#[macro_use]
2+
extern crate bson;
3+
use bson::{Encoder, Decoder};
4+
5+
extern crate serde;
6+
use serde::{Serialize, Deserialize};
7+
8+
use std::collections::BTreeMap;
9+
10+
#[test]
11+
fn test_ser_vec() {
12+
let vec = vec![1, 2, 3];
13+
14+
let mut encoder = Encoder::new();
15+
vec.serialize(&mut encoder).unwrap();
16+
17+
let expected = bson!([1, 2, 3]);
18+
assert_eq!(expected, encoder.bson().unwrap());
19+
}
20+
21+
#[test]
22+
fn test_ser_map() {
23+
let mut map = BTreeMap::new();
24+
map.insert("x", 0);
25+
map.insert("y", 1);
26+
27+
let mut encoder = Encoder::new();
28+
map.serialize(&mut encoder).unwrap();
29+
30+
let expected = bson!({ "x" => 0, "y" => 1 });
31+
assert_eq!(expected, encoder.bson().unwrap());
32+
}
33+
34+
#[test]
35+
fn test_de_vec() {
36+
let bson = bson!([1, 2, 3]);
37+
38+
let mut decoder = Decoder::new(bson);
39+
let vec = Vec::<i32>::deserialize(&mut decoder).unwrap();
40+
41+
let expected = vec![1, 2, 3];
42+
assert_eq!(expected, vec);
43+
}
44+
45+
#[test]
46+
fn test_de_map() {
47+
let bson = bson!({ "x" => 0, "y" => 1 });
48+
49+
let mut decoder = Decoder::new(bson);
50+
let map = BTreeMap::<String, i32>::deserialize(&mut decoder).unwrap();
51+
52+
let mut expected = BTreeMap::new();
53+
expected.insert("x".to_string(), 0);
54+
expected.insert("y".to_string(), 1);
55+
assert_eq!(expected, map);
56+
}

0 commit comments

Comments
 (0)