Skip to content

Commit fd75c6d

Browse files
committed
More dynamic message tests
1 parent c558f0f commit fd75c6d

File tree

1 file changed

+35
-9
lines changed

1 file changed

+35
-9
lines changed
Lines changed: 35 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,16 @@
1-
use protobuf::reflect::FileDescriptor;
21
use protobuf::reflect::ReflectValueRef;
2+
use protobuf::reflect::{FileDescriptor, ReflectValueBox};
33

44
use super::test_dynamic_pb;
55

6-
fn do_test(file_descriptor: &FileDescriptor) {
6+
fn dynamic_file_descriptor() -> FileDescriptor {
7+
FileDescriptor::new_dynamic(
8+
test_dynamic_pb::file_descriptor().get_proto().clone(),
9+
Vec::new(),
10+
)
11+
}
12+
13+
fn do_test_get_set(file_descriptor: &FileDescriptor) {
714
let m = file_descriptor
815
.get_message_by_package_relative_name("ForDynamicTest")
916
.unwrap();
@@ -18,14 +25,33 @@ fn do_test(file_descriptor: &FileDescriptor) {
1825
}
1926

2027
#[test]
21-
fn test_generated() {
22-
do_test(&test_dynamic_pb::file_descriptor());
28+
fn generated_get_set() {
29+
do_test_get_set(&test_dynamic_pb::file_descriptor());
2330
}
2431

2532
#[test]
26-
fn test_dynamic() {
27-
do_test(&FileDescriptor::new_dynamic(
28-
test_dynamic_pb::file_descriptor().get_proto().clone(),
29-
Vec::new(),
30-
));
33+
fn dynamic_get_set() {
34+
do_test_get_set(&dynamic_file_descriptor());
35+
}
36+
37+
fn do_test_set_panic_on_wrong_field_type(file_descriptor: &FileDescriptor) {
38+
let m = file_descriptor
39+
.get_message_by_package_relative_name("ForDynamicTest")
40+
.unwrap();
41+
let f = m.get_field_by_name("ff").unwrap();
42+
let mut m = m.new_instance();
43+
let m = &mut *m;
44+
f.set_singular_field(m, ReflectValueBox::from(10i64));
45+
}
46+
47+
#[test]
48+
#[should_panic]
49+
fn generated_set_panic_on_wrong_field_type() {
50+
do_test_set_panic_on_wrong_field_type(&test_dynamic_pb::file_descriptor());
51+
}
52+
53+
#[test]
54+
#[should_panic]
55+
fn dynamic_set_panic_on_wrong_field_type() {
56+
do_test_set_panic_on_wrong_field_type(&dynamic_file_descriptor());
3157
}

0 commit comments

Comments
 (0)