rsip 0.4.0

SIP Rust library, parser & generator of SIP
Documentation
use rsip::common::uri::auth::{Auth, Tokenizer};
use std::convert::TryInto;

mod display {
    use super::*;

    #[test]
    fn display1() {
        assert_eq!(
            Auth {
                user: "user".into(),
                password: None
            }
            .to_string(),
            String::from("user")
        );
    }

    #[test]
    fn display2() {
        assert_eq!(
            Auth {
                user: "user".into(),
                password: Some("password".into())
            }
            .to_string(),
            String::from("user:password")
        );
    }
}

mod parser {
    use super::*;

    #[test]
    fn parser() {
        assert_eq!(
            Tokenizer::from(("user".as_bytes(), Some("password".as_bytes()))).try_into(),
            Ok(Auth {
                user: "user".into(),
                password: Some("password".into())
            }),
        );
    }
}

mod tokenizer {
    use super::*;

    #[test]
    fn tokenizer1_u8() {
        assert_eq!(
            Tokenizer::tokenize("user:password@server2.com something".as_bytes()),
            Ok((
                "server2.com something".as_bytes(),
                ("user".as_bytes(), Some("password".as_bytes())).into()
            )),
        );
    }

    #[test]
    fn tokenizer1_str() {
        assert_eq!(
            Tokenizer::tokenize("user:password@server2.com something"),
            Ok(("server2.com something", ("user", Some("password")).into())),
        );
    }

    #[test]
    fn errors1() {
        assert_eq!(
            Tokenizer::tokenize("server2.com something".as_bytes()),
            Err(nom::Err::Error(rsip::TokenizerError::from(
                "failed to tokenize auth user: server2.com something"
            ))),
        );
    }
}