1 use super::*;
2 use crate::error::Result;
3
4 #[test]
test_five_tuple_protocol() -> Result<()>5 fn test_five_tuple_protocol() -> Result<()> {
6 let udp_expect = PROTO_UDP;
7 let tcp_expect = PROTO_TCP;
8
9 assert_eq!(
10 udp_expect, PROTO_UDP,
11 "Invalid UDP Protocol value, expect {udp_expect} but {PROTO_UDP}"
12 );
13 assert_eq!(
14 tcp_expect, PROTO_TCP,
15 "Invalid TCP Protocol value, expect {tcp_expect} but {PROTO_TCP}"
16 );
17
18 assert_eq!(udp_expect.to_string(), "UDP");
19 assert_eq!(tcp_expect.to_string(), "TCP");
20
21 Ok(())
22 }
23
24 #[test]
test_five_tuple_equal() -> Result<()>25 fn test_five_tuple_equal() -> Result<()> {
26 let src_addr1: SocketAddr = "0.0.0.0:3478".parse::<SocketAddr>()?;
27 let src_addr2: SocketAddr = "0.0.0.0:3479".parse::<SocketAddr>()?;
28
29 let dst_addr1: SocketAddr = "0.0.0.0:3480".parse::<SocketAddr>()?;
30 let dst_addr2: SocketAddr = "0.0.0.0:3481".parse::<SocketAddr>()?;
31
32 let tests = vec![
33 (
34 "Equal",
35 true,
36 FiveTuple {
37 protocol: PROTO_UDP,
38 src_addr: src_addr1,
39 dst_addr: dst_addr1,
40 },
41 FiveTuple {
42 protocol: PROTO_UDP,
43 src_addr: src_addr1,
44 dst_addr: dst_addr1,
45 },
46 ),
47 (
48 "DifferentProtocol",
49 false,
50 FiveTuple {
51 protocol: PROTO_TCP,
52 src_addr: src_addr1,
53 dst_addr: dst_addr1,
54 },
55 FiveTuple {
56 protocol: PROTO_UDP,
57 src_addr: src_addr1,
58 dst_addr: dst_addr1,
59 },
60 ),
61 (
62 "DifferentSrcAddr",
63 false,
64 FiveTuple {
65 protocol: PROTO_UDP,
66 src_addr: src_addr1,
67 dst_addr: dst_addr1,
68 },
69 FiveTuple {
70 protocol: PROTO_UDP,
71 src_addr: src_addr2,
72 dst_addr: dst_addr1,
73 },
74 ),
75 (
76 "DifferentDstAddr",
77 false,
78 FiveTuple {
79 protocol: PROTO_UDP,
80 src_addr: src_addr1,
81 dst_addr: dst_addr1,
82 },
83 FiveTuple {
84 protocol: PROTO_UDP,
85 src_addr: src_addr1,
86 dst_addr: dst_addr2,
87 },
88 ),
89 ];
90
91 for (name, expect, a, b) in tests {
92 let fact = a == b;
93 assert_eq!(
94 expect, fact,
95 "{name}: {a}, {b} equal check should be {expect}, but {fact}"
96 );
97 }
98
99 Ok(())
100 }
101