adjust tests to the change in structs
This commit is contained in:
parent
515d574742
commit
1708db5ae2
1 changed files with 58 additions and 52 deletions
110
src/client.rs
110
src/client.rs
|
|
@ -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"
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue