From f146435e992009fb49bcd71840bd3b5f8edf2406 Mon Sep 17 00:00:00 2001 From: lurchi Date: Sat, 10 Sep 2016 13:12:06 +0200 Subject: [PATCH] add uniform tests --- rust/tests/test_uniform.rs | 71 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 71 insertions(+) create mode 100644 rust/tests/test_uniform.rs diff --git a/rust/tests/test_uniform.rs b/rust/tests/test_uniform.rs new file mode 100644 index 0000000..8000ecb --- /dev/null +++ b/rust/tests/test_uniform.rs @@ -0,0 +1,71 @@ +extern crate psyc; + +use psyc::*; + +#[test] +fn test_person() { + let uniform = Uniform::from_bytes(b"psyc://ve.symlynx.com:4404/~lurchi"); + + let unwrapped = uniform.unwrap(); + let entity = unwrapped.entity(); + + assert!(unwrapped.is_valid()); + assert_eq!(unwrapped.full(), "psyc://ve.symlynx.com:4404/~lurchi"); + assert_eq!(unwrapped.scheme(), PsycScheme::PSYC_SCHEME_PSYC); + assert_eq!(unwrapped.host(), "ve.symlynx.com"); + assert_eq!(unwrapped.port(), Some(4404)); + assert_eq!(unwrapped.resource(), "~lurchi"); + + assert_eq!(entity, PsycEntity::Person {name: "lurchi", channel: ""}); +} + +#[test] +fn test_place() { + let uniform = Uniform::from_bytes(b"psyc://ve.symlynx.com/@_strange_place"); + + let unwrapped = uniform.unwrap(); + + assert!(unwrapped.is_valid()); + assert_eq!(unwrapped.resource(), "@_strange_place"); + assert_eq!(unwrapped.entity(), + PsycEntity::Place {name: "_strange_place", channel: ""}); + +} + +#[test] +fn test_host_only() { + let uniform = Uniform::from_bytes(b"psyc://ve.symlynx.com"); + + let unwrapped = uniform.unwrap(); + + assert!(unwrapped.is_valid()); + assert_eq!(unwrapped.resource(), ""); + assert_eq!(unwrapped.entity(), PsycEntity::Root); +} + +#[test] +fn test_unknown_resource() { + let uniform = Uniform::from_bytes(b"psyc://ve.symlynx.com/%unknown#a"); + + let unwrapped = uniform.unwrap(); + + assert!(unwrapped.is_valid()); + assert_eq!(unwrapped.entity(), + PsycEntity::Unknown {object: "%unknown", channel: "a"}); +} + +#[test] +fn test_channel() { + let uniform = Uniform::from_bytes(b"psyc://ve.symlynx.com:4404/~lurchi#test"); + + let unwrapped = uniform.unwrap(); + + assert_eq!(unwrapped.entity(), PsycEntity::Person {name: "lurchi", channel: "test"}); +} + +#[test] +fn test_empty() { + let uniform = Uniform::from_bytes(b""); + assert_eq!(uniform.unwrap_err(), + UniformParseError::PSYC_PARSE_UNIFORM_INVALID_SCHEME); +}