stun_rs/attributes/ice/
ice_controlled.rs1const ICE_CONTROLLED: u16 = 0x8029;
2
3crate::common::integer_attribute!(
4 IceControlled,
16 ICE_CONTROLLED,
17 u64,
18);
19
20#[cfg(test)]
21mod tests {
22 use super::*;
23 use crate::StunAttribute;
24
25 #[test]
26 fn integer_attribute() {
27 let attr = IceControlled::new(1234);
28 assert_eq!(attr, 1234);
29 assert_eq!(1234, attr);
30
31 let attr2 = IceControlled::from(1234);
32 assert_eq!(attr, attr2);
33
34 let attr3 = IceControlled::from(5678);
35 assert_ne!(attr, attr3);
36
37 assert!(attr < 5555);
38 assert!(attr > 1000);
39 assert!(5555 > attr);
40 assert!(1000 < attr);
41
42 assert_eq!(attr.as_ref(), &1234);
43 assert_eq!(attr.partial_cmp(&1234), Some(std::cmp::Ordering::Equal));
44 }
45
46 #[test]
47 fn ice_controlled_stunt_attribute() {
48 let attr = StunAttribute::IceControlled(IceControlled::new(1234));
49 assert!(attr.is_ice_controlled());
50 assert!(attr.as_ice_controlled().is_ok());
51 assert!(attr.as_error_code().is_err());
52
53 assert!(!attr.attribute_type().is_comprehension_required());
54 assert!(attr.attribute_type().is_comprehension_optional());
55
56 let dbg_fmt = format!("{:?}", attr);
57 assert_eq!("IceControlled(IceControlled(1234))", dbg_fmt);
58 }
59}