Skip to content

Commit 90d5bd8

Browse files
committed
Add a unit test
1 parent 9898893 commit 90d5bd8

File tree

1 file changed

+30
-9
lines changed

1 file changed

+30
-9
lines changed

tests/unit/flatbuffers/containers/hash_map.rs

Lines changed: 30 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -14,28 +14,32 @@ mod tests {
1414
use super::flat::fb_test;
1515

1616
fn serialize_map(values: Vec<(&str, &str)>) -> Vec<u8> {
17-
let mut builder = flatbuffers::FlatBufferBuilder::new();
18-
let mut map = HashMapBuilder::default();
17+
let mut builder = HashMapBuilder::default();
1918
for (key, value) in values {
20-
map.insert(key.to_string(), value.to_string());
19+
builder.insert(key.to_string(), value.to_string());
2120
}
22-
let map = HashMapBuilder::finish(map, &mut builder);
21+
serialize_builder(builder)
22+
}
23+
24+
fn serialize_builder(builder: HashMapBuilder<String, String>) -> Vec<u8> {
25+
let mut flat_builder = flatbuffers::FlatBufferBuilder::new();
26+
let map = HashMapBuilder::finish(builder, &mut flat_builder);
2327
let map_serialized = fb_test::TestStringMap::create(
24-
&mut builder,
28+
&mut flat_builder,
2529
&fb_test::TestStringMapArgs {
2630
keys: Some(map.keys),
2731
values: Some(map.values),
2832
},
2933
);
3034
let root = fb_test::TestRoot::create(
31-
&mut builder,
35+
&mut flat_builder,
3236
&fb_test::TestRootArgs {
3337
test_string_map: Some(map_serialized),
3438
..Default::default()
3539
},
3640
);
37-
builder.finish(root, None);
38-
builder.finished_data().to_vec()
41+
flat_builder.finish(root, None);
42+
flat_builder.finished_data().to_vec()
3943
}
4044

4145
fn load_map<'a>(data: &'a [u8]) -> HashMapStringView<'a, &'a str> {
@@ -65,7 +69,24 @@ mod tests {
6569
assert_eq!(map.get("b").unwrap(), "30");
6670
}
6771

68-
// TODO: test get_or_insert
72+
#[test]
73+
fn test_builder_getters() {
74+
let mut builder = HashMapBuilder::default();
75+
builder.insert("a".to_string(), "10".to_string());
76+
assert_eq!(
77+
builder.get_or_insert("a".to_string(), "20".to_string()),
78+
"10"
79+
);
80+
assert_eq!(
81+
builder.get_or_insert("b".to_string(), "20".to_string()),
82+
"20"
83+
);
84+
let data = serialize_builder(builder);
85+
let map = load_map(&data);
86+
assert_eq!(map.get("a").unwrap(), "10");
87+
assert_eq!(map.get("b").unwrap(), "20");
88+
assert!(map.get("c").is_none());
89+
}
6990

7091
#[test]
7192
fn test_string_builder() {

0 commit comments

Comments
 (0)