use libsip::*;
use nom::error::VerboseError;
#[test]
fn write_simple() {
let req = ResponseGenerator::new().code(200).build().unwrap();
assert_eq!("SIP/2.0 200 OK\r\n\r\n".to_string(), format!("{}", req));
}
#[test]
fn write_complex() {
let req = ResponseGenerator::new()
.code(180)
.header(Header::Expires(10))
.header(Header::ContentLength(5))
.body(vec![b'5'; 5])
.build()
.unwrap();
assert_eq!(
"SIP/2.0 180 Ringing\r\nExpires: 10\r\nContent-Length: 5\r\n\r\n55555".to_string(),
format!("{}", req)
);
}
#[test]
fn read_simple() {
let remains = vec![];
let req = ResponseGenerator::new().code(200).build().unwrap();
assert_eq!(
Ok((remains.as_ref(), req)),
parse_response::<VerboseError<&[u8]>>(b"SIP/2.0 200 OK\r\n\r\n")
);
}
#[test]
fn read_complex() {
let remains = vec![];
let req = ResponseGenerator::new()
.code(180)
.header(Header::Expires(10))
.header(Header::ContentLength(5))
.body(vec![b'5'; 5])
.build()
.unwrap();
assert_eq!(
Ok((remains.as_ref(), req)),
parse_response::<VerboseError<&[u8]>>(
b"SIP/2.0 180 Ringing\r\nExpires: 10\r\nContent-Length: 5\r\n\r\n55555"
)
);
}