From ea9e6df9889f8790faf1e402f1bdeee0f8565f21 Mon Sep 17 00:00:00 2001 From: Evan Feenstra Date: Thu, 14 Jul 2022 13:16:58 -0700 Subject: [PATCH] add parser test --- parser/src/lib.rs | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/parser/src/lib.rs b/parser/src/lib.rs index 98b2a49..05e4061 100644 --- a/parser/src/lib.rs +++ b/parser/src/lib.rs @@ -111,3 +111,33 @@ impl Write for MsgDriver { Ok(()) } } + +#[cfg(test)] +mod tests { + use crate::MsgDriver; + use vls_protocol::msgs; + use vls_protocol::serde_bolt::WireString; + + #[test] + fn test_parser() { + let msg = "hello"; + let ping = msgs::Ping { + id: 0, + message: WireString(msg.as_bytes().to_vec()), + }; + let mut md = MsgDriver::new_empty(); + msgs::write_serial_request_header(&mut md, 0, 0) + .expect("failed to write_serial_request_header"); + msgs::write(&mut md, ping).expect("failed to serial write"); + let mut m = MsgDriver::new(md.bytes()); + let (_sequence, _dbid) = + msgs::read_serial_request_header(&mut m).expect("read ping header"); + let parsed_ping: msgs::Ping = + msgs::read_message(&mut m).expect("failed to read ping message"); + assert_eq!(parsed_ping.id, 0); + assert_eq!( + String::from_utf8(parsed_ping.message.0).unwrap(), + msg.to_string() + ); + } +}