in src/flowgger/decoder/rfc5424_decoder.rs [236:269]
fn test_rfc5424() {
let msg = r#"<23>1 2015-08-05T15:53:45.637824Z testhostname appname 69 42 [origin@123 software="te\st sc\"ript" swVersion="0.0.1"] test message"#;
let res = RFC5424Decoder.decode(msg).unwrap();
assert!(res.facility.unwrap() == 2);
assert!(res.severity.unwrap() == 7);
assert!(res.ts == 1438790025.637824);
assert!(res.hostname == "testhostname");
assert!(res.appname == Some("appname".to_owned()));
assert!(res.procid == Some("69".to_owned()));
assert!(res.msgid == Some("42".to_owned()));
assert!(res.msg == Some("test message".to_owned()));
let sd_vec = res.sd.unwrap();
assert!(sd_vec.len() == 1);
let sd = &sd_vec[0];
assert!(sd.sd_id == Some("origin@123".to_owned()));
let pairs = &sd.pairs;
assert!(pairs
.iter()
.cloned()
.any(|(k, v)| if let SDValue::String(v) = v {
k == "_software" && v == "te\\st sc\"ript"
} else {
false
}));
assert!(pairs
.iter()
.cloned()
.any(|(k, v)| if let SDValue::String(v) = v {
k == "_swVersion" && v == "0.0.1"
} else {
false
}));
}