1 use super::*; 2 use crate::error::Result; 3 4 #[test] test_priority_get_from() -> Result<()>5fn 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