• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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