diff --git a/mktestconfig.sh b/mktestconfig.sh index b442b6b..219914e 100644 --- a/mktestconfig.sh +++ b/mktestconfig.sh @@ -1 +1 @@ -echo "{\"owners\": [\"test\"],\"nickname\": \"test\",\"username\": \"test\",\"realname\": \"test\",\"password\": \"\",\"server\": \"irc.fyrechat.net\",\"port\": 6667,\"channels\": [\"#calc0000\", \"#vana\"]}" > config.json +echo "{\"owners\": [\"test\"],\"nickname\": \"test\",\"username\": \"test\",\"realname\": \"test\",\"password\": \"\",\"server\": \"irc.fyrechat.net\",\"port\": 6667,\"channels\": [\"#test\", \"#test2\"]}" > config.json diff --git a/src/bot.rs b/src/bot.rs index c8588ea..4e1c10f 100644 --- a/src/bot.rs +++ b/src/bot.rs @@ -243,4 +243,34 @@ mod test { b.identify().unwrap(); assert_eq!(b.conn.writer().deref_mut().get_ref(), "NICK :test\r\nUSER test 0 * :test\r\n".as_bytes()); } + + #[test] + fn ping_response() { + let r = BufReader::new(":embyr.tx.us.fyrechat.net PING :01R6\r\n".as_bytes()); + let w = MemWriter::new(); + let c = Connection::new(w, r).unwrap(); + let mut b = IrcBot::from_connection(c, |_, _, _, _| { Ok(()) }).unwrap(); + b.output().unwrap(); + assert_eq!(b.conn.writer().deref_mut().get_ref(), "PONG :01R6\r\n".as_bytes()); + } + + #[test] + fn end_of_motd_response() { + let r = BufReader::new(":embyr.tx.us.fyrechat.net 376 test :End of /MOTD command.\r\n".as_bytes()); + let w = MemWriter::new(); + let c = Connection::new(w, r).unwrap(); + let mut b = IrcBot::from_connection(c, |_, _, _, _| { Ok(()) }).unwrap(); + b.output().unwrap(); + assert_eq!(b.conn.writer().deref_mut().get_ref(), "JOIN :#test\r\nJOIN :#test2\r\n".as_bytes()); + } + + #[test] + fn missing_motd_response() { + let r = BufReader::new(":flare.to.ca.fyrechat.net 422 pickles :MOTD File is missing\r\n".as_bytes()); + let w = MemWriter::new(); + let c = Connection::new(w, r).unwrap(); + let mut b = IrcBot::from_connection(c, |_, _, _, _| { Ok(()) }).unwrap(); + b.output().unwrap(); + assert_eq!(b.conn.writer().deref_mut().get_ref(), "JOIN :#test\r\nJOIN :#test2\r\n".as_bytes()); + } }