2016-08-22 22:04:57 +00:00
|
|
|
extern crate psyc;
|
|
|
|
use psyc::parser::*;
|
|
|
|
|
|
|
|
#[test]
|
|
|
|
fn test_parse() {
|
|
|
|
let test_data = ":_target\tpsyc://ve.symlynx.com/@blog\n\n?\n|\n".to_string().into_bytes();
|
|
|
|
|
2016-08-29 08:02:33 +00:00
|
|
|
let expected = vec![PsycParserResult::RoutingModifier{
|
|
|
|
operator: ':',
|
|
|
|
name: &test_data[1 .. 8],
|
|
|
|
value: &test_data[9 .. 36],
|
|
|
|
},
|
|
|
|
PsycParserResult::StateSync];
|
2016-08-22 22:04:57 +00:00
|
|
|
|
|
|
|
let mut parser = PsycParser::new();
|
2016-08-28 23:00:31 +00:00
|
|
|
|
2016-08-22 22:04:57 +00:00
|
|
|
parser.set_buffer(&test_data);
|
|
|
|
|
2016-08-29 08:02:33 +00:00
|
|
|
assert_eq!(parser.parse().unwrap(), expected[0]);
|
2016-08-28 23:00:31 +00:00
|
|
|
|
2016-08-29 08:02:33 +00:00
|
|
|
assert_eq!(parser.parse().unwrap(), expected[1]);
|
2016-08-28 23:00:31 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
#[test]
|
|
|
|
fn test_insufficient() {
|
|
|
|
let test_data = ":_target\tpsyc://ve.symlynx.com/@blog\n\n:_nick\tlurchi\n|\n".to_string().into_bytes();
|
|
|
|
|
2016-08-29 08:02:33 +00:00
|
|
|
let expected = vec![PsycParserResult::InsufficientData,
|
|
|
|
PsycParserResult::RoutingModifier {
|
|
|
|
operator: ':',
|
|
|
|
name: &test_data[1 .. 8],
|
|
|
|
value: &test_data[9 .. 36]
|
|
|
|
},
|
|
|
|
PsycParserResult::InsufficientData,
|
|
|
|
PsycParserResult::EntityModifier{
|
|
|
|
operator: ':',
|
|
|
|
name: &test_data[39 .. 44],
|
|
|
|
value: &test_data[45 .. 51],
|
|
|
|
},
|
|
|
|
PsycParserResult::Complete];
|
2016-08-28 23:00:31 +00:00
|
|
|
|
|
|
|
let mut parser = PsycParser::new();
|
|
|
|
|
2016-08-29 08:02:33 +00:00
|
|
|
parser.set_buffer(&test_data[.. 1]);
|
|
|
|
assert_eq!(parser.parse().unwrap(), expected[0]);
|
|
|
|
|
|
|
|
parser.set_buffer(&test_data[.. 46]);
|
|
|
|
assert_eq!(parser.parse().unwrap(), expected[1]);
|
|
|
|
|
|
|
|
parser.set_buffer(&test_data[.. 49]);
|
|
|
|
assert_eq!(parser.parse().unwrap(), expected[2]);
|
|
|
|
|
|
|
|
parser.set_buffer(&test_data);
|
|
|
|
assert_eq!(parser.parse().unwrap(), expected[3]);
|
|
|
|
|
|
|
|
assert_eq!(parser.parse().unwrap(), expected[4]);
|
2016-08-22 22:04:57 +00:00
|
|
|
}
|