use super::*;
use shared::error::{Error, Result};
#[test]
fn test_controlled_get_from() -> Result<()> {
let mut m = Message::new();
let mut c = AttrControlled(4321);
let result = c.get_from(&m);
if let Err(err) = result {
assert_eq!(Error::ErrAttributeNotFound, err, "unexpected error");
} else {
panic!("expected error, but got ok");
}
m.build(&[Box::new(BINDING_REQUEST), Box::new(c)])?;
let mut m1 = Message::new();
m1.write(&m.raw)?;
let mut c1 = AttrControlled::default();
c1.get_from(&m1)?;
assert_eq!(c1, c, "not equal");
{
let mut m3 = Message::new();
m3.add(ATTR_ICE_CONTROLLED, &[0; 100]);
let mut c2 = AttrControlled::default();
let result = c2.get_from(&m3);
if let Err(err) = result {
assert!(is_attr_size_invalid(&err), "should error");
} else {
panic!("expected error, but got ok");
}
}
Ok(())
}
#[test]
fn test_controlling_get_from() -> Result<()> {
let mut m = Message::new();
let mut c = AttrControlling(4321);
let result = c.get_from(&m);
if let Err(err) = result {
assert_eq!(Error::ErrAttributeNotFound, err, "unexpected error");
} else {
panic!("expected error, but got ok");
}
m.build(&[Box::new(BINDING_REQUEST), Box::new(c)])?;
let mut m1 = Message::new();
m1.write(&m.raw)?;
let mut c1 = AttrControlling::default();
c1.get_from(&m1)?;
assert_eq!(c1, c, "not equal");
{
let mut m3 = Message::new();
m3.add(ATTR_ICE_CONTROLLING, &[0; 100]);
let mut c2 = AttrControlling::default();
let result = c2.get_from(&m3);
if let Err(err) = result {
assert!(is_attr_size_invalid(&err), "should error");
} else {
panic!("expected error, but got ok");
}
}
Ok(())
}
#[test]
fn test_control_get_from() -> Result<()> {
{
let m = Message::new();
let mut c = AttrControl::default();
let result = c.get_from(&m);
if let Err(err) = result {
assert_eq!(Error::ErrAttributeNotFound, err, "unexpected error");
} else {
panic!("expected error, but got ok");
}
}
{
let mut m = Message::new();
let mut c = AttrControl::default();
let result = c.get_from(&m);
if let Err(err) = result {
assert_eq!(Error::ErrAttributeNotFound, err, "unexpected error");
} else {
panic!("expected error, but got ok");
}
c.role = Role::Controlling;
c.tie_breaker = TieBreaker(4321);
m.build(&[Box::new(BINDING_REQUEST), Box::new(c)])?;
let mut m1 = Message::new();
m1.write(&m.raw)?;
let mut c1 = AttrControl::default();
c1.get_from(&m1)?;
assert_eq!(c1, c, "not equal");
{
let mut m3 = Message::new();
m3.add(ATTR_ICE_CONTROLLING, &[0; 100]);
let mut c2 = AttrControl::default();
let result = c2.get_from(&m3);
if let Err(err) = result {
assert!(is_attr_size_invalid(&err), "should error");
} else {
panic!("expected error, but got ok");
}
}
}
{
let mut m = Message::new();
let mut c = AttrControl::default();
let result = c.get_from(&m);
if let Err(err) = result {
assert_eq!(Error::ErrAttributeNotFound, err, "unexpected error");
} else {
panic!("expected error, but got ok");
}
c.role = Role::Controlled;
c.tie_breaker = TieBreaker(1234);
m.build(&[Box::new(BINDING_REQUEST), Box::new(c)])?;
let mut m1 = Message::new();
m1.write(&m.raw)?;
let mut c1 = AttrControl::default();
c1.get_from(&m1)?;
assert_eq!(c1, c, "not equal");
{
let mut m3 = Message::new();
m3.add(ATTR_ICE_CONTROLLING, &[0; 100]);
let mut c2 = AttrControl::default();
let result = c2.get_from(&m3);
if let Err(err) = result {
assert!(is_attr_size_invalid(&err), "should error");
} else {
panic!("expected error, but got ok");
}
}
}
Ok(())
}