Add parse test
authorRichard Whitehouse <github@richardwhiuk.com>
Mon, 22 Oct 2018 18:41:40 +0000 (14:41 -0400)
committerRichard Whitehouse <github@richardwhiuk.com>
Mon, 22 Oct 2018 18:41:40 +0000 (14:41 -0400)
src/codec/mod.rs

index 39dfd890b87fba1960700cdb3ec60ef10025eb30..56b74fa9834fd2e66af186eede59be0113d3ecb9 100644 (file)
@@ -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!");
+        }
+    }
+}