1 //! Tests transitive dependencies.
2
3 use a_proto::a::A;
4 use b_proto::a::b::B;
5 use c_proto::a::b::c::C;
6 use duration_proto::google::protobuf::Duration;
7 use timestamp_proto::google::protobuf::Timestamp;
8 use types_proto::Types;
9
10 #[test]
test_b()11 fn test_b() {
12 let duration = Duration {
13 seconds: 1,
14 nanos: 2,
15 };
16
17 let a = A {
18 name: "a".to_string(),
19 b: Some(B {
20 name: "b".to_string(),
21 c: Some(C {
22 name: "c".to_string(),
23 duration: Some(duration.clone()),
24 ..Default::default()
25 }),
26 ..Default::default()
27 }),
28 timestamp: Some(Timestamp {
29 seconds: 1,
30 nanos: 2,
31 }),
32 duration: Some(duration),
33 types: Some(Types::default()),
34 };
35
36 let b_ref = a.b.as_ref().unwrap();
37 let c_ref = b_ref.c.as_ref().unwrap();
38
39 assert_eq!(a.name, "a");
40 assert_eq!(b_ref.name, "b");
41 assert_eq!(c_ref.name, "c");
42 assert_eq!(a.duration, c_ref.duration);
43 }
44