xref: /webrtc/ice/src/priority/priority_test.rs (revision 83f2d1bb)
1 use super::*;
2 use crate::error::Result;
3 
4 #[test]
test_priority_get_from() -> Result<()>5 fn test_priority_get_from() -> Result<()> {
6     let mut m = Message::new();
7     let mut p = PriorityAttr::default();
8     let result = p.get_from(&m);
9     if let Err(err) = result {
10         assert_eq!(err, stun::Error::ErrAttributeNotFound, "unexpected error");
11     } else {
12         panic!("expected error, but got ok");
13     }
14 
15     m.build(&[Box::new(BINDING_REQUEST), Box::new(p)])?;
16 
17     let mut m1 = Message::new();
18     m1.write(&m.raw)?;
19 
20     let mut p1 = PriorityAttr::default();
21     p1.get_from(&m1)?;
22 
23     assert_eq!(p1, p, "not equal");
24 
25     //"IncorrectSize"
26     {
27         let mut m3 = Message::new();
28         m3.add(ATTR_PRIORITY, &[0; 100]);
29         let mut p2 = PriorityAttr::default();
30         let result = p2.get_from(&m3);
31         if let Err(err) = result {
32             assert!(is_attr_size_invalid(&err), "should error");
33         } else {
34             panic!("expected error, but got ok");
35         }
36     }
37 
38     Ok(())
39 }
40