From: Richard Whitehouse Date: Mon, 22 Oct 2018 18:41:40 +0000 (-0400) Subject: Add parse test X-Git-Url: https://git.richardwhiuk.com/?a=commitdiff_plain;h=c349f383f94e405c7ba4a7de50541ffdd9d585c6;p=rust-sip.git Add parse test --- diff --git a/src/codec/mod.rs b/src/codec/mod.rs index 39dfd89..56b74fa 100644 --- a/src/codec/mod.rs +++ b/src/codec/mod.rs @@ -33,6 +33,13 @@ impl UnparsedLine { UnparsedLine { value: value } } + #[cfg(test)] + fn from_bytes(value: &[u8]) -> UnparsedLine { + let mut b = BytesMut::new(); + b.extend_from_slice(value); + UnparsedLine::new(b) + } + fn add(&mut self, value: &BytesMut) { self.value.extend_from_slice(value); } @@ -275,3 +282,26 @@ impl Encoder for SipCodec { Ok(()) } } + +#[cfg(test)] +mod tests { + + use super::*; + use types::Method; + + #[test] + fn test_parse_request() { + let pm = PartialMessage { + headers: vec![Header::parse(UnparsedLine::from_bytes(b"Content-Length: 0")).unwrap()], + top_line: UnparsedLine::from_bytes(b"MESSAGE sip:test.com SIP/2.0"), + }; + + let m = pm.into_message(None).unwrap(); + + if let Message::Request(req) = m { + assert_eq!(*req.method(), Method::MESSAGE); + } else { + panic!("Expected request!"); + } + } +}