irctokens-rs/tests/tokenise.rs

31 lines
849 B
Rust
Raw Normal View History

2023-03-22 22:14:17 +00:00
use irctokens::Line;
2023-03-21 21:50:02 +00:00
#[test]
fn basic() {
let line =
2023-03-22 22:14:17 +00:00
Line::tokenise(b"@tag1=tag1value;tag2=;tag3 :source COMMAND arg1 arg2 :arg3 with space")
.unwrap();
2023-03-21 21:50:02 +00:00
assert_eq!(line.source, Some(b"source".to_vec()));
assert_eq!(&line.command, "COMMAND");
assert_eq!(line.arguments.len(), 3);
assert_eq!(line.arguments[0], b"arg1");
assert_eq!(line.arguments[1], b"arg2");
assert_eq!(line.arguments[2], b"arg3 with space");
2023-03-21 21:50:02 +00:00
let tags = line.tags.unwrap();
assert_eq!(tags.len(), 3);
assert_eq!(tags["tag1"], Some("tag1value".to_string()));
assert_eq!(tags["tag2"], None);
assert_eq!(tags["tag3"], None);
}
2023-03-21 23:09:57 +00:00
#[test]
fn complex_tags() {
2023-03-22 22:14:17 +00:00
let line = Line::tokenise(b"@tag1=a\\:a COMMAND").unwrap();
2023-03-21 23:09:57 +00:00
let tags = line.tags.unwrap();
2023-03-22 10:07:20 +00:00
assert_eq!(tags["tag1"], Some("a;a".to_string()));
2023-03-21 23:09:57 +00:00
}