bevy_reflect: Update serde tests for Set (#14616)
# Objective Support for reflecting set-like types (e.g. `HashSet`) was added in #13014. However, we didn't add any serialization tests to verify that serialization works as expected. ## Solution Update the serde tests. ## Testing You can test locally by running: ``` cargo test --package bevy_reflect ```
This commit is contained in:
parent
70a18d26e2
commit
0caeaa2ca9
@ -1220,7 +1220,7 @@ mod tests {
|
||||
use serde::de::DeserializeSeed;
|
||||
use serde::Deserialize;
|
||||
|
||||
use bevy_utils::HashMap;
|
||||
use bevy_utils::{HashMap, HashSet};
|
||||
|
||||
use crate as bevy_reflect;
|
||||
use crate::serde::{ReflectDeserializer, ReflectSerializer, TypedReflectDeserializer};
|
||||
@ -1235,6 +1235,7 @@ mod tests {
|
||||
list_value: Vec<i32>,
|
||||
array_value: [i32; 5],
|
||||
map_value: HashMap<u8, usize>,
|
||||
set_value: HashSet<u8>,
|
||||
struct_value: SomeStruct,
|
||||
tuple_struct_value: SomeTupleStruct,
|
||||
unit_struct: SomeUnitStruct,
|
||||
@ -1325,6 +1326,7 @@ mod tests {
|
||||
registry.register::<[i32; 5]>();
|
||||
registry.register::<Vec<i32>>();
|
||||
registry.register::<HashMap<u8, usize>>();
|
||||
registry.register::<HashSet<u8>>();
|
||||
registry.register::<Option<SomeStruct>>();
|
||||
registry.register::<Option<String>>();
|
||||
registry.register_type_data::<Option<String>, ReflectDeserialize>();
|
||||
@ -1335,6 +1337,9 @@ mod tests {
|
||||
let mut map = HashMap::new();
|
||||
map.insert(64, 32);
|
||||
|
||||
let mut set = HashSet::new();
|
||||
set.insert(64);
|
||||
|
||||
MyStruct {
|
||||
primitive_value: 123,
|
||||
option_value: Some(String::from("Hello world!")),
|
||||
@ -1343,6 +1348,7 @@ mod tests {
|
||||
list_value: vec![-2, -1, 0, 1, 2],
|
||||
array_value: [-2, -1, 0, 1, 2],
|
||||
map_value: map,
|
||||
set_value: set,
|
||||
struct_value: SomeStruct { foo: 999999999 },
|
||||
tuple_struct_value: SomeTupleStruct(String::from("Tuple Struct")),
|
||||
unit_struct: SomeUnitStruct,
|
||||
@ -1389,6 +1395,9 @@ mod tests {
|
||||
map_value: {
|
||||
64: 32,
|
||||
},
|
||||
set_value: [
|
||||
64,
|
||||
],
|
||||
struct_value: (
|
||||
foo: 999999999,
|
||||
),
|
||||
@ -1626,12 +1635,12 @@ mod tests {
|
||||
0, 0, 219, 15, 73, 64, 57, 5, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 254, 255, 255,
|
||||
255, 255, 255, 255, 255, 0, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 254, 255, 255, 255, 255,
|
||||
255, 255, 255, 0, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 64, 32, 0,
|
||||
0, 0, 0, 0, 0, 0, 255, 201, 154, 59, 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 84, 117, 112,
|
||||
108, 101, 32, 83, 116, 114, 117, 99, 116, 0, 0, 0, 0, 1, 0, 0, 0, 123, 0, 0, 0, 0, 0,
|
||||
0, 0, 2, 0, 0, 0, 164, 112, 157, 63, 164, 112, 77, 64, 3, 0, 0, 0, 20, 0, 0, 0, 0, 0,
|
||||
0, 0, 83, 116, 114, 117, 99, 116, 32, 118, 97, 114, 105, 97, 110, 116, 32, 118, 97,
|
||||
108, 117, 101, 1, 0, 0, 0, 0, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 0, 101, 0, 0, 0, 0, 0, 0,
|
||||
0,
|
||||
0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 64, 255, 201, 154, 59, 0, 0, 0, 0, 12, 0, 0,
|
||||
0, 0, 0, 0, 0, 84, 117, 112, 108, 101, 32, 83, 116, 114, 117, 99, 116, 0, 0, 0, 0, 1,
|
||||
0, 0, 0, 123, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 164, 112, 157, 63, 164, 112, 77, 64, 3,
|
||||
0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, 83, 116, 114, 117, 99, 116, 32, 118, 97, 114, 105,
|
||||
97, 110, 116, 32, 118, 97, 108, 117, 101, 1, 0, 0, 0, 0, 0, 0, 0, 100, 0, 0, 0, 0, 0,
|
||||
0, 0, 101, 0, 0, 0, 0, 0, 0, 0,
|
||||
];
|
||||
|
||||
let deserializer = ReflectDeserializer::new(®istry);
|
||||
@ -1653,15 +1662,15 @@ mod tests {
|
||||
let input = vec![
|
||||
129, 217, 40, 98, 101, 118, 121, 95, 114, 101, 102, 108, 101, 99, 116, 58, 58, 115,
|
||||
101, 114, 100, 101, 58, 58, 100, 101, 58, 58, 116, 101, 115, 116, 115, 58, 58, 77, 121,
|
||||
83, 116, 114, 117, 99, 116, 220, 0, 19, 123, 172, 72, 101, 108, 108, 111, 32, 119, 111,
|
||||
83, 116, 114, 117, 99, 116, 220, 0, 20, 123, 172, 72, 101, 108, 108, 111, 32, 119, 111,
|
||||
114, 108, 100, 33, 145, 123, 146, 202, 64, 73, 15, 219, 205, 5, 57, 149, 254, 255, 0,
|
||||
1, 2, 149, 254, 255, 0, 1, 2, 129, 64, 32, 145, 206, 59, 154, 201, 255, 145, 172, 84,
|
||||
117, 112, 108, 101, 32, 83, 116, 114, 117, 99, 116, 144, 164, 85, 110, 105, 116, 129,
|
||||
167, 78, 101, 119, 84, 121, 112, 101, 123, 129, 165, 84, 117, 112, 108, 101, 146, 202,
|
||||
63, 157, 112, 164, 202, 64, 77, 112, 164, 129, 166, 83, 116, 114, 117, 99, 116, 145,
|
||||
180, 83, 116, 114, 117, 99, 116, 32, 118, 97, 114, 105, 97, 110, 116, 32, 118, 97, 108,
|
||||
117, 101, 144, 144, 129, 166, 83, 116, 114, 117, 99, 116, 144, 129, 165, 84, 117, 112,
|
||||
108, 101, 144, 146, 100, 145, 101,
|
||||
1, 2, 149, 254, 255, 0, 1, 2, 129, 64, 32, 145, 64, 145, 206, 59, 154, 201, 255, 145,
|
||||
172, 84, 117, 112, 108, 101, 32, 83, 116, 114, 117, 99, 116, 144, 164, 85, 110, 105,
|
||||
116, 129, 167, 78, 101, 119, 84, 121, 112, 101, 123, 129, 165, 84, 117, 112, 108, 101,
|
||||
146, 202, 63, 157, 112, 164, 202, 64, 77, 112, 164, 129, 166, 83, 116, 114, 117, 99,
|
||||
116, 145, 180, 83, 116, 114, 117, 99, 116, 32, 118, 97, 114, 105, 97, 110, 116, 32,
|
||||
118, 97, 108, 117, 101, 144, 144, 129, 166, 83, 116, 114, 117, 99, 116, 144, 129, 165,
|
||||
84, 117, 112, 108, 101, 144, 146, 100, 145, 101,
|
||||
];
|
||||
|
||||
let mut reader = std::io::BufReader::new(input.as_slice());
|
||||
|
||||
@ -567,7 +567,7 @@ mod tests {
|
||||
use crate::serde::ReflectSerializer;
|
||||
use crate::{self as bevy_reflect, Struct};
|
||||
use crate::{Reflect, ReflectSerialize, TypeRegistry};
|
||||
use bevy_utils::HashMap;
|
||||
use bevy_utils::{HashMap, HashSet};
|
||||
use ron::extensions::Extensions;
|
||||
use ron::ser::PrettyConfig;
|
||||
use serde::Serialize;
|
||||
@ -583,6 +583,7 @@ mod tests {
|
||||
list_value: Vec<i32>,
|
||||
array_value: [i32; 5],
|
||||
map_value: HashMap<u8, usize>,
|
||||
set_value: HashSet<u8>,
|
||||
struct_value: SomeStruct,
|
||||
tuple_struct_value: SomeTupleStruct,
|
||||
unit_struct: SomeUnitStruct,
|
||||
@ -672,6 +673,10 @@ mod tests {
|
||||
fn get_my_struct() -> MyStruct {
|
||||
let mut map = HashMap::new();
|
||||
map.insert(64, 32);
|
||||
|
||||
let mut set = HashSet::new();
|
||||
set.insert(64);
|
||||
|
||||
MyStruct {
|
||||
primitive_value: 123,
|
||||
option_value: Some(String::from("Hello world!")),
|
||||
@ -680,6 +685,7 @@ mod tests {
|
||||
list_value: vec![-2, -1, 0, 1, 2],
|
||||
array_value: [-2, -1, 0, 1, 2],
|
||||
map_value: map,
|
||||
set_value: set,
|
||||
struct_value: SomeStruct { foo: 999999999 },
|
||||
tuple_struct_value: SomeTupleStruct(String::from("Tuple Struct")),
|
||||
unit_struct: SomeUnitStruct,
|
||||
@ -733,6 +739,9 @@ mod tests {
|
||||
map_value: {
|
||||
64: 32,
|
||||
},
|
||||
set_value: [
|
||||
64,
|
||||
],
|
||||
struct_value: (
|
||||
foo: 999999999,
|
||||
),
|
||||
@ -888,12 +897,12 @@ mod tests {
|
||||
0, 0, 0, 0, 219, 15, 73, 64, 57, 5, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 254, 255,
|
||||
255, 255, 255, 255, 255, 255, 0, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 254, 255, 255, 255,
|
||||
255, 255, 255, 255, 0, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 64, 32,
|
||||
0, 0, 0, 0, 0, 0, 0, 255, 201, 154, 59, 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 84, 117,
|
||||
112, 108, 101, 32, 83, 116, 114, 117, 99, 116, 0, 0, 0, 0, 1, 0, 0, 0, 123, 0, 0, 0, 0,
|
||||
0, 0, 0, 2, 0, 0, 0, 164, 112, 157, 63, 164, 112, 77, 64, 3, 0, 0, 0, 20, 0, 0, 0, 0,
|
||||
0, 0, 0, 83, 116, 114, 117, 99, 116, 32, 118, 97, 114, 105, 97, 110, 116, 32, 118, 97,
|
||||
108, 117, 101, 1, 0, 0, 0, 0, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 0, 101, 0, 0, 0, 0, 0, 0,
|
||||
0,
|
||||
0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 64, 255, 201, 154, 59, 0, 0, 0, 0, 12, 0,
|
||||
0, 0, 0, 0, 0, 0, 84, 117, 112, 108, 101, 32, 83, 116, 114, 117, 99, 116, 0, 0, 0, 0,
|
||||
1, 0, 0, 0, 123, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 164, 112, 157, 63, 164, 112, 77, 64,
|
||||
3, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, 83, 116, 114, 117, 99, 116, 32, 118, 97, 114, 105,
|
||||
97, 110, 116, 32, 118, 97, 108, 117, 101, 1, 0, 0, 0, 0, 0, 0, 0, 100, 0, 0, 0, 0, 0,
|
||||
0, 0, 101, 0, 0, 0, 0, 0, 0, 0,
|
||||
];
|
||||
|
||||
assert_eq!(expected, bytes);
|
||||
@ -910,15 +919,15 @@ mod tests {
|
||||
let expected: Vec<u8> = vec![
|
||||
129, 217, 41, 98, 101, 118, 121, 95, 114, 101, 102, 108, 101, 99, 116, 58, 58, 115,
|
||||
101, 114, 100, 101, 58, 58, 115, 101, 114, 58, 58, 116, 101, 115, 116, 115, 58, 58, 77,
|
||||
121, 83, 116, 114, 117, 99, 116, 220, 0, 19, 123, 172, 72, 101, 108, 108, 111, 32, 119,
|
||||
121, 83, 116, 114, 117, 99, 116, 220, 0, 20, 123, 172, 72, 101, 108, 108, 111, 32, 119,
|
||||
111, 114, 108, 100, 33, 145, 123, 146, 202, 64, 73, 15, 219, 205, 5, 57, 149, 254, 255,
|
||||
0, 1, 2, 149, 254, 255, 0, 1, 2, 129, 64, 32, 145, 206, 59, 154, 201, 255, 145, 172,
|
||||
84, 117, 112, 108, 101, 32, 83, 116, 114, 117, 99, 116, 144, 164, 85, 110, 105, 116,
|
||||
129, 167, 78, 101, 119, 84, 121, 112, 101, 123, 129, 165, 84, 117, 112, 108, 101, 146,
|
||||
202, 63, 157, 112, 164, 202, 64, 77, 112, 164, 129, 166, 83, 116, 114, 117, 99, 116,
|
||||
145, 180, 83, 116, 114, 117, 99, 116, 32, 118, 97, 114, 105, 97, 110, 116, 32, 118, 97,
|
||||
108, 117, 101, 144, 144, 129, 166, 83, 116, 114, 117, 99, 116, 144, 129, 165, 84, 117,
|
||||
112, 108, 101, 144, 146, 100, 145, 101,
|
||||
0, 1, 2, 149, 254, 255, 0, 1, 2, 129, 64, 32, 145, 64, 145, 206, 59, 154, 201, 255,
|
||||
145, 172, 84, 117, 112, 108, 101, 32, 83, 116, 114, 117, 99, 116, 144, 164, 85, 110,
|
||||
105, 116, 129, 167, 78, 101, 119, 84, 121, 112, 101, 123, 129, 165, 84, 117, 112, 108,
|
||||
101, 146, 202, 63, 157, 112, 164, 202, 64, 77, 112, 164, 129, 166, 83, 116, 114, 117,
|
||||
99, 116, 145, 180, 83, 116, 114, 117, 99, 116, 32, 118, 97, 114, 105, 97, 110, 116, 32,
|
||||
118, 97, 108, 117, 101, 144, 144, 129, 166, 83, 116, 114, 117, 99, 116, 144, 129, 165,
|
||||
84, 117, 112, 108, 101, 144, 146, 100, 145, 101,
|
||||
];
|
||||
|
||||
assert_eq!(expected, bytes);
|
||||
|
||||
Loading…
Reference in New Issue
Block a user