adjust tests to the change in structs

This commit is contained in:
Johannes Schilling 2018-08-29 17:46:39 +02:00
parent 515d574742
commit 1708db5ae2

View file

@ -717,6 +717,12 @@ mod tests {
use super::super::mock_stream::MockStream; use super::super::mock_stream::MockStream;
use super::*; use super::*;
macro_rules! mock_session {
($s:expr) => {
Session { conn: Client::new($s).conn }
}
}
#[test] #[test]
fn read_response() { fn read_response() {
let response = "a0 OK Logged in.\r\n"; let response = "a0 OK Logged in.\r\n";
@ -732,9 +738,9 @@ mod tests {
* 2 FETCH (BODY[TEXT] {3}\r\nfoo)\r\n\ * 2 FETCH (BODY[TEXT] {3}\r\nfoo)\r\n\
a0 OK FETCH completed\r\n"; a0 OK FETCH completed\r\n";
let mock_stream = MockStream::new(response.as_bytes().to_vec()); let mock_stream = MockStream::new(response.as_bytes().to_vec());
let mut client = Client::new(mock_stream); let mut session = mock_session!(mock_stream);
client.read_response().unwrap(); session.read_response().unwrap();
client.read_response().unwrap(); session.read_response().unwrap();
} }
#[test] #[test]
@ -808,10 +814,10 @@ mod tests {
let password = "password"; let password = "password";
let command = format!("a1 LOGIN {} {}\r\n", quote!(username), quote!(password)); let command = format!("a1 LOGIN {} {}\r\n", quote!(username), quote!(password));
let mock_stream = MockStream::new(response); let mock_stream = MockStream::new(response);
let mut client = Client::new(mock_stream); let client = Client::new(mock_stream);
client.login(username, password).unwrap(); let session = client.login(username, password).unwrap();
assert!( assert!(
client.stream.get_ref().written_buf == command.as_bytes().to_vec(), session.stream.get_ref().written_buf == command.as_bytes().to_vec(),
"Invalid login command" "Invalid login command"
); );
} }
@ -821,10 +827,10 @@ mod tests {
let response = b"a1 OK Logout completed.\r\n".to_vec(); let response = b"a1 OK Logout completed.\r\n".to_vec();
let command = format!("a1 LOGOUT\r\n"); let command = format!("a1 LOGOUT\r\n");
let mock_stream = MockStream::new(response); let mock_stream = MockStream::new(response);
let mut client = Client::new(mock_stream); let mut session = mock_session!(mock_stream);
client.logout().unwrap(); session.logout().unwrap();
assert!( assert!(
client.stream.get_ref().written_buf == command.as_bytes().to_vec(), session.stream.get_ref().written_buf == command.as_bytes().to_vec(),
"Invalid logout command" "Invalid logout command"
); );
} }
@ -840,12 +846,12 @@ mod tests {
quote!(new_mailbox_name) quote!(new_mailbox_name)
); );
let mock_stream = MockStream::new(response); let mock_stream = MockStream::new(response);
let mut client = Client::new(mock_stream); let mut session = mock_session!(mock_stream);
client session
.rename(current_mailbox_name, new_mailbox_name) .rename(current_mailbox_name, new_mailbox_name)
.unwrap(); .unwrap();
assert!( assert!(
client.stream.get_ref().written_buf == command.as_bytes().to_vec(), session.stream.get_ref().written_buf == command.as_bytes().to_vec(),
"Invalid rename command" "Invalid rename command"
); );
} }
@ -856,10 +862,10 @@ mod tests {
let mailbox = "INBOX"; let mailbox = "INBOX";
let command = format!("a1 SUBSCRIBE {}\r\n", quote!(mailbox)); let command = format!("a1 SUBSCRIBE {}\r\n", quote!(mailbox));
let mock_stream = MockStream::new(response); let mock_stream = MockStream::new(response);
let mut client = Client::new(mock_stream); let mut session = mock_session!(mock_stream);
client.subscribe(mailbox).unwrap(); session.subscribe(mailbox).unwrap();
assert!( assert!(
client.stream.get_ref().written_buf == command.as_bytes().to_vec(), session.stream.get_ref().written_buf == command.as_bytes().to_vec(),
"Invalid subscribe command" "Invalid subscribe command"
); );
} }
@ -870,10 +876,10 @@ mod tests {
let mailbox = "INBOX"; let mailbox = "INBOX";
let command = format!("a1 UNSUBSCRIBE {}\r\n", quote!(mailbox)); let command = format!("a1 UNSUBSCRIBE {}\r\n", quote!(mailbox));
let mock_stream = MockStream::new(response); let mock_stream = MockStream::new(response);
let mut client = Client::new(mock_stream); let mut session = mock_session!(mock_stream);
client.unsubscribe(mailbox).unwrap(); session.unsubscribe(mailbox).unwrap();
assert!( assert!(
client.stream.get_ref().written_buf == command.as_bytes().to_vec(), session.stream.get_ref().written_buf == command.as_bytes().to_vec(),
"Invalid unsubscribe command" "Invalid unsubscribe command"
); );
} }
@ -882,10 +888,10 @@ mod tests {
fn expunge() { fn expunge() {
let response = b"a1 OK EXPUNGE completed\r\n".to_vec(); let response = b"a1 OK EXPUNGE completed\r\n".to_vec();
let mock_stream = MockStream::new(response); let mock_stream = MockStream::new(response);
let mut client = Client::new(mock_stream); let mut session = mock_session!(mock_stream);
client.expunge().unwrap(); session.expunge().unwrap();
assert!( assert!(
client.stream.get_ref().written_buf == b"a1 EXPUNGE\r\n".to_vec(), session.stream.get_ref().written_buf == b"a1 EXPUNGE\r\n".to_vec(),
"Invalid expunge command" "Invalid expunge command"
); );
} }
@ -894,10 +900,10 @@ mod tests {
fn check() { fn check() {
let response = b"a1 OK CHECK completed\r\n".to_vec(); let response = b"a1 OK CHECK completed\r\n".to_vec();
let mock_stream = MockStream::new(response); let mock_stream = MockStream::new(response);
let mut client = Client::new(mock_stream); let mut session = mock_session!(mock_stream);
client.check().unwrap(); session.check().unwrap();
assert!( assert!(
client.stream.get_ref().written_buf == b"a1 CHECK\r\n".to_vec(), session.stream.get_ref().written_buf == b"a1 CHECK\r\n".to_vec(),
"Invalid check command" "Invalid check command"
); );
} }
@ -931,10 +937,10 @@ mod tests {
let mailbox_name = "INBOX"; let mailbox_name = "INBOX";
let command = format!("a1 EXAMINE {}\r\n", quote!(mailbox_name)); let command = format!("a1 EXAMINE {}\r\n", quote!(mailbox_name));
let mock_stream = MockStream::new(response); let mock_stream = MockStream::new(response);
let mut client = Client::new(mock_stream); let mut session = mock_session!(mock_stream);
let mailbox = client.examine(mailbox_name).unwrap(); let mailbox = session.examine(mailbox_name).unwrap();
assert!( assert!(
client.stream.get_ref().written_buf == command.as_bytes().to_vec(), session.stream.get_ref().written_buf == command.as_bytes().to_vec(),
"Invalid examine command" "Invalid examine command"
); );
assert_eq!(mailbox, expected_mailbox); assert_eq!(mailbox, expected_mailbox);
@ -977,10 +983,10 @@ mod tests {
let mailbox_name = "INBOX"; let mailbox_name = "INBOX";
let command = format!("a1 SELECT {}\r\n", quote!(mailbox_name)); let command = format!("a1 SELECT {}\r\n", quote!(mailbox_name));
let mock_stream = MockStream::new(response); let mock_stream = MockStream::new(response);
let mut client = Client::new(mock_stream); let mut session = mock_session!(mock_stream);
let mailbox = client.select(mailbox_name).unwrap(); let mailbox = session.select(mailbox_name).unwrap();
assert!( assert!(
client.stream.get_ref().written_buf == command.as_bytes().to_vec(), session.stream.get_ref().written_buf == command.as_bytes().to_vec(),
"Invalid select command" "Invalid select command"
); );
assert_eq!(mailbox, expected_mailbox); assert_eq!(mailbox, expected_mailbox);
@ -993,10 +999,10 @@ mod tests {
.to_vec(); .to_vec();
let expected_capabilities = vec!["IMAP4rev1", "STARTTLS", "AUTH=GSSAPI", "LOGINDISABLED"]; let expected_capabilities = vec!["IMAP4rev1", "STARTTLS", "AUTH=GSSAPI", "LOGINDISABLED"];
let mock_stream = MockStream::new(response); let mock_stream = MockStream::new(response);
let mut client = Client::new(mock_stream); let mut session = mock_session!(mock_stream);
let capabilities = client.capabilities().unwrap(); let capabilities = session.capabilities().unwrap();
assert!( assert!(
client.stream.get_ref().written_buf == b"a1 CAPABILITY\r\n".to_vec(), session.stream.get_ref().written_buf == b"a1 CAPABILITY\r\n".to_vec(),
"Invalid capability command" "Invalid capability command"
); );
assert_eq!(capabilities.len(), 4); assert_eq!(capabilities.len(), 4);
@ -1011,10 +1017,10 @@ mod tests {
let mailbox_name = "INBOX"; let mailbox_name = "INBOX";
let command = format!("a1 CREATE {}\r\n", quote!(mailbox_name)); let command = format!("a1 CREATE {}\r\n", quote!(mailbox_name));
let mock_stream = MockStream::new(response); let mock_stream = MockStream::new(response);
let mut client = Client::new(mock_stream); let mut session = mock_session!(mock_stream);
client.create(mailbox_name).unwrap(); session.create(mailbox_name).unwrap();
assert!( assert!(
client.stream.get_ref().written_buf == command.as_bytes().to_vec(), session.stream.get_ref().written_buf == command.as_bytes().to_vec(),
"Invalid create command" "Invalid create command"
); );
} }
@ -1025,10 +1031,10 @@ mod tests {
let mailbox_name = "INBOX"; let mailbox_name = "INBOX";
let command = format!("a1 DELETE {}\r\n", quote!(mailbox_name)); let command = format!("a1 DELETE {}\r\n", quote!(mailbox_name));
let mock_stream = MockStream::new(response); let mock_stream = MockStream::new(response);
let mut client = Client::new(mock_stream); let mut session = mock_session!(mock_stream);
client.delete(mailbox_name).unwrap(); session.delete(mailbox_name).unwrap();
assert!( assert!(
client.stream.get_ref().written_buf == command.as_bytes().to_vec(), session.stream.get_ref().written_buf == command.as_bytes().to_vec(),
"Invalid delete command" "Invalid delete command"
); );
} }
@ -1037,10 +1043,10 @@ mod tests {
fn noop() { fn noop() {
let response = b"a1 OK NOOP completed\r\n".to_vec(); let response = b"a1 OK NOOP completed\r\n".to_vec();
let mock_stream = MockStream::new(response); let mock_stream = MockStream::new(response);
let mut client = Client::new(mock_stream); let mut session = mock_session!(mock_stream);
client.noop().unwrap(); session.noop().unwrap();
assert!( assert!(
client.stream.get_ref().written_buf == b"a1 NOOP\r\n".to_vec(), session.stream.get_ref().written_buf == b"a1 NOOP\r\n".to_vec(),
"Invalid noop command" "Invalid noop command"
); );
} }
@ -1049,10 +1055,10 @@ mod tests {
fn close() { fn close() {
let response = b"a1 OK CLOSE completed\r\n".to_vec(); let response = b"a1 OK CLOSE completed\r\n".to_vec();
let mock_stream = MockStream::new(response); let mock_stream = MockStream::new(response);
let mut client = Client::new(mock_stream); let mut session = mock_session!(mock_stream);
client.close().unwrap(); session.close().unwrap();
assert!( assert!(
client.stream.get_ref().written_buf == b"a1 CLOSE\r\n".to_vec(), session.stream.get_ref().written_buf == b"a1 CLOSE\r\n".to_vec(),
"Invalid close command" "Invalid close command"
); );
} }
@ -1069,7 +1075,7 @@ mod tests {
fn generic_store<F, T>(prefix: &str, op: F) fn generic_store<F, T>(prefix: &str, op: F)
where where
F: FnOnce(&mut Client<MockStream>, &str, &str) -> Result<T>, F: FnOnce(&mut Session<MockStream>, &str, &str) -> Result<T>,
{ {
let res = "* 2 FETCH (FLAGS (\\Deleted \\Seen))\r\n\ let res = "* 2 FETCH (FLAGS (\\Deleted \\Seen))\r\n\
* 3 FETCH (FLAGS (\\Deleted))\r\n\ * 3 FETCH (FLAGS (\\Deleted))\r\n\
@ -1091,7 +1097,7 @@ mod tests {
fn generic_copy<F, T>(prefix: &str, op: F) fn generic_copy<F, T>(prefix: &str, op: F)
where where
F: FnOnce(&mut Client<MockStream>, &str, &str) -> Result<T>, F: FnOnce(&mut Session<MockStream>, &str, &str) -> Result<T>,
{ {
generic_with_uid( generic_with_uid(
"OK COPY completed\r\n", "OK COPY completed\r\n",
@ -1115,21 +1121,21 @@ mod tests {
fn generic_fetch<F, T>(prefix: &str, op: F) fn generic_fetch<F, T>(prefix: &str, op: F)
where where
F: FnOnce(&mut Client<MockStream>, &str, &str) -> Result<T>, F: FnOnce(&mut Session<MockStream>, &str, &str) -> Result<T>,
{ {
generic_with_uid("OK FETCH completed\r\n", "FETCH", "1", "BODY[]", prefix, op); generic_with_uid("OK FETCH completed\r\n", "FETCH", "1", "BODY[]", prefix, op);
} }
fn generic_with_uid<F, T>(res: &str, cmd: &str, seq: &str, query: &str, prefix: &str, op: F) fn generic_with_uid<F, T>(res: &str, cmd: &str, seq: &str, query: &str, prefix: &str, op: F)
where where
F: FnOnce(&mut Client<MockStream>, &str, &str) -> Result<T>, F: FnOnce(&mut Session<MockStream>, &str, &str) -> Result<T>,
{ {
let resp = format!("a1 {}\r\n", res).as_bytes().to_vec(); let resp = format!("a1 {}\r\n", res).as_bytes().to_vec();
let line = format!("a1{}{} {} {}\r\n", prefix, cmd, seq, query); let line = format!("a1{}{} {} {}\r\n", prefix, cmd, seq, query);
let mut client = Client::new(MockStream::new(resp)); let mut session = mock_session!(MockStream::new(resp));
let _ = op(&mut client, seq, query); let _ = op(&mut session, seq, query);
assert!( assert!(
client.stream.get_ref().written_buf == line.as_bytes().to_vec(), session.stream.get_ref().written_buf == line.as_bytes().to_vec(),
"Invalid command" "Invalid command"
); );
} }