• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 use googletest::prelude::*;
2 use protobuf::prelude::*;
3 use unittest_rust_proto::{NestedTestAllTypes, TestAllTypes};
4 
5 #[gtest]
merge_from_empty()6 fn merge_from_empty() {
7     let mut dst = TestAllTypes::new();
8     let src = TestAllTypes::new();
9     dst.merge_from(src.as_view());
10     assert_that!(dst.as_view().has_optional_int32(), eq(false));
11 }
12 
13 #[gtest]
merge_from_non_empty()14 fn merge_from_non_empty() {
15     let mut dst = TestAllTypes::new();
16     let src = proto!(TestAllTypes { optional_int32: 42 });
17     dst.as_mut().merge_from(src.as_view());
18     assert_eq!(dst.as_view().optional_int32(), 42);
19 }
20 
21 #[gtest]
merge_repeated_empty()22 fn merge_repeated_empty() {
23     let mut dst = TestAllTypes::new();
24     let mut src = TestAllTypes::new();
25     src.repeated_int32_mut().extend(0..5);
26     dst.merge_from(src.as_view());
27     assert_that!(
28         &dst.repeated_int32().iter().collect::<Vec<_>>(),
29         eq(&src.repeated_int32().iter().collect::<Vec<_>>())
30     );
31 }
32 
33 #[gtest]
merge_repeated_non_empty()34 fn merge_repeated_non_empty() {
35     let mut dst = TestAllTypes::new();
36     let mut src = TestAllTypes::new();
37     dst.repeated_int32_mut().extend(0..5);
38     src.repeated_int32_mut().extend(5..10);
39     dst.merge_from(src.as_view());
40     assert_that!(
41         &dst.repeated_int32().iter().collect::<Vec<_>>(),
42         eq(&(0..10).collect::<Vec<_>>())
43     );
44 }
45 
46 #[gtest]
merge_from_sub_message()47 fn merge_from_sub_message() {
48     let mut dst = NestedTestAllTypes::new();
49     let src = proto!(NestedTestAllTypes {
50         child: NestedTestAllTypes { payload: TestAllTypes { optional_int32: 42 } }
51     });
52     dst.merge_from(src.as_view());
53     assert_that!(dst.as_view().child().payload().optional_int32(), eq(42));
54 }
55