diff --git a/tests/transport_file.rs b/tests/transport_file.rs index 71e6da3..5a59049 100644 --- a/tests/transport_file.rs +++ b/tests/transport_file.rs @@ -1,18 +1,14 @@ #[cfg(test)] #[cfg(all(feature = "file-transport", feature = "builder"))] -mod test { - use lettre::{transport::file::FileTransport, Message}; +mod sync { + use lettre::{FileTransport, Message, Transport}; use std::{ env::temp_dir, fs::{read_to_string, remove_file}, }; - #[cfg(feature = "tokio02")] - use tokio02_crate as tokio; - #[test] fn file_transport() { - use lettre::Transport; let sender = FileTransport::new(temp_dir()); let email = Message::builder() .from("NoBody ".parse().unwrap()) @@ -48,7 +44,6 @@ mod test { #[test] #[cfg(feature = "file-transport-envelope")] fn file_transport_with_envelope() { - use lettre::Transport; let sender = FileTransport::with_envelope(temp_dir()); let email = Message::builder() .from("NoBody ".parse().unwrap()) @@ -95,49 +90,21 @@ mod test { remove_file(eml_file).unwrap(); remove_file(json_file).unwrap(); } +} - #[cfg(feature = "async-std1")] - #[async_std::test] - async fn file_transport_asyncstd1() { - use lettre::{AsyncFileTransport, AsyncStd1Executor, AsyncTransport}; +#[cfg(test)] +#[cfg(all(feature = "file-transport", feature = "builder", feature = "tokio02"))] +mod tokio_02 { + use lettre::{AsyncFileTransport, AsyncTransport, Message, Tokio02Executor}; + use std::{ + env::temp_dir, + fs::{read_to_string, remove_file}, + }; - let sender = AsyncFileTransport::::new(temp_dir()); - let email = Message::builder() - .from("NoBody ".parse().unwrap()) - .reply_to("Yuin ".parse().unwrap()) - .to("Hei ".parse().unwrap()) - .subject("Happy new year") - .date("Tue, 15 Nov 1994 08:12:31 GMT".parse().unwrap()) - .body(String::from("Be happy!")) - .unwrap(); + use tokio02_crate as tokio; - let result = sender.send(email).await; - let id = result.unwrap(); - - let eml_file = temp_dir().join(format!("{}.eml", id)); - let eml = read_to_string(&eml_file).unwrap(); - - assert_eq!( - eml, - concat!( - "From: NoBody \r\n", - "Reply-To: Yuin \r\n", - "To: Hei \r\n", - "Subject: Happy new year\r\n", - "Date: Tue, 15 Nov 1994 08:12:31 GMT\r\n", - "Content-Transfer-Encoding: 7bit\r\n", - "\r\n", - "Be happy!" - ) - ); - remove_file(eml_file).unwrap(); - } - - #[cfg(feature = "tokio02")] #[tokio::test] async fn file_transport_tokio02() { - use lettre::{AsyncFileTransport, AsyncTransport, Tokio02Executor}; - let sender = AsyncFileTransport::::new(temp_dir()); let email = Message::builder() .from("NoBody ".parse().unwrap()) @@ -170,3 +137,98 @@ mod test { remove_file(eml_file).unwrap(); } } + +#[cfg(test)] +#[cfg(all(feature = "file-transport", feature = "builder", feature = "tokio1"))] +mod tokio_1 { + use lettre::{AsyncFileTransport, AsyncTransport, Message, Tokio1Executor}; + use std::{ + env::temp_dir, + fs::{read_to_string, remove_file}, + }; + + use tokio1_crate as tokio; + + #[cfg(feature = "tokio02")] + #[tokio::test] + async fn file_transport_tokio1() { + let sender = AsyncFileTransport::::new(temp_dir()); + let email = Message::builder() + .from("NoBody ".parse().unwrap()) + .reply_to("Yuin ".parse().unwrap()) + .to("Hei ".parse().unwrap()) + .subject("Happy new year") + .date("Tue, 15 Nov 1994 08:12:31 GMT".parse().unwrap()) + .body(String::from("Be happy!")) + .unwrap(); + + let result = sender.send(email).await; + let id = result.unwrap(); + + let eml_file = temp_dir().join(format!("{}.eml", id)); + let eml = read_to_string(&eml_file).unwrap(); + + assert_eq!( + eml, + concat!( + "From: NoBody \r\n", + "Reply-To: Yuin \r\n", + "To: Hei \r\n", + "Subject: Happy new year\r\n", + "Date: Tue, 15 Nov 1994 08:12:31 GMT\r\n", + "Content-Transfer-Encoding: 7bit\r\n", + "\r\n", + "Be happy!" + ) + ); + remove_file(eml_file).unwrap(); + } +} + +#[cfg(test)] +#[cfg(all( + feature = "file-transport", + feature = "builder", + feature = "async-std1" +))] +mod asyncstd_1 { + use lettre::{AsyncFileTransport, AsyncStd1Executor, AsyncTransport, Message}; + use std::{ + env::temp_dir, + fs::{read_to_string, remove_file}, + }; + + #[async_std::test] + async fn file_transport_asyncstd1() { + let sender = AsyncFileTransport::::new(temp_dir()); + let email = Message::builder() + .from("NoBody ".parse().unwrap()) + .reply_to("Yuin ".parse().unwrap()) + .to("Hei ".parse().unwrap()) + .subject("Happy new year") + .date("Tue, 15 Nov 1994 08:12:31 GMT".parse().unwrap()) + .body(String::from("Be happy!")) + .unwrap(); + + let result = sender.send(email).await; + let id = result.unwrap(); + + let eml_file = temp_dir().join(format!("{}.eml", id)); + let eml = read_to_string(&eml_file).unwrap(); + + assert_eq!( + eml, + concat!( + "From: NoBody \r\n", + "Reply-To: Yuin \r\n", + "To: Hei \r\n", + "Subject: Happy new year\r\n", + "Date: Tue, 15 Nov 1994 08:12:31 GMT\r\n", + "Content-Transfer-Encoding: 7bit\r\n", + "\r\n", + "Be happy!" + ) + ); + remove_file(eml_file).unwrap(); + } +} diff --git a/tests/transport_sendmail.rs b/tests/transport_sendmail.rs index dac0b0f..0f44673 100644 --- a/tests/transport_sendmail.rs +++ b/tests/transport_sendmail.rs @@ -1,14 +1,10 @@ #[cfg(test)] #[cfg(all(feature = "sendmail-transport", feature = "builder"))] -mod test { - use lettre::{transport::sendmail::SendmailTransport, Message}; - - #[cfg(feature = "tokio02")] - use tokio02_crate as tokio; +mod sync { + use lettre::{Message, SendmailTransport, Transport}; #[test] fn sendmail_transport() { - use lettre::Transport; let sender = SendmailTransport::new(); let email = Message::builder() .from("NoBody ".parse().unwrap()) @@ -22,32 +18,20 @@ mod test { println!("{:?}", result); assert!(result.is_ok()); } +} - #[cfg(feature = "async-std1")] - #[async_std::test] - async fn sendmail_transport_asyncstd1() { - use lettre::{AsyncSendmailTransport, AsyncStd1Executor, AsyncTransport}; +#[cfg(test)] +#[cfg(all( + feature = "sendmail-transport", + feature = "builder", + feature = "tokio02" +))] +mod tokio_02 { + use lettre::{AsyncSendmailTransport, AsyncTransport, Message, Tokio02Executor}; + use tokio02_crate as tokio; - let sender = AsyncSendmailTransport::::new(); - let email = Message::builder() - .from("NoBody ".parse().unwrap()) - .reply_to("Yuin ".parse().unwrap()) - .to("Hei ".parse().unwrap()) - .subject("Happy new year") - .date("Tue, 15 Nov 1994 08:12:31 GMT".parse().unwrap()) - .body(String::from("Be happy!")) - .unwrap(); - - let result = sender.send(email).await; - println!("{:?}", result); - assert!(result.is_ok()); - } - - #[cfg(feature = "tokio02")] #[tokio::test] async fn sendmail_transport_tokio02() { - use lettre::{AsyncSendmailTransport, AsyncTransport, Tokio02Executor}; - let sender = AsyncSendmailTransport::::new(); let email = Message::builder() .from("NoBody ".parse().unwrap()) @@ -63,3 +47,58 @@ mod test { assert!(result.is_ok()); } } + +#[cfg(test)] +#[cfg(all( + feature = "sendmail-transport", + feature = "builder", + feature = "tokio1" +))] +mod tokio_1 { + use lettre::{AsyncSendmailTransport, AsyncTransport, Message, Tokio1Executor}; + use tokio1_crate as tokio; + + #[tokio::test] + async fn sendmail_transport_tokio1() { + let sender = AsyncSendmailTransport::::new(); + let email = Message::builder() + .from("NoBody ".parse().unwrap()) + .reply_to("Yuin ".parse().unwrap()) + .to("Hei ".parse().unwrap()) + .subject("Happy new year") + .date("Tue, 15 Nov 1994 08:12:31 GMT".parse().unwrap()) + .body(String::from("Be happy!")) + .unwrap(); + + let result = sender.send(email).await; + println!("{:?}", result); + assert!(result.is_ok()); + } +} + +#[cfg(test)] +#[cfg(all( + feature = "sendmail-transport", + feature = "builder", + feature = "async-std1" +))] +mod asyncstd_1 { + use lettre::{AsyncSendmailTransport, AsyncStd1Executor, AsyncTransport, Message}; + + #[async_std::test] + async fn sendmail_transport_asyncstd1() { + let sender = AsyncSendmailTransport::::new(); + let email = Message::builder() + .from("NoBody ".parse().unwrap()) + .reply_to("Yuin ".parse().unwrap()) + .to("Hei ".parse().unwrap()) + .subject("Happy new year") + .date("Tue, 15 Nov 1994 08:12:31 GMT".parse().unwrap()) + .body(String::from("Be happy!")) + .unwrap(); + + let result = sender.send(email).await; + println!("{:?}", result); + assert!(result.is_ok()); + } +} diff --git a/tests/transport_smtp.rs b/tests/transport_smtp.rs index bcfaa41..262eb3a 100644 --- a/tests/transport_smtp.rs +++ b/tests/transport_smtp.rs @@ -1,6 +1,6 @@ #[cfg(test)] #[cfg(all(feature = "smtp-transport", feature = "builder"))] -mod test { +mod sync { use lettre::{Message, SmtpTransport, Transport}; #[test] @@ -12,10 +12,87 @@ mod test { .subject("Happy new year") .body(String::from("Be happy!")) .unwrap(); - SmtpTransport::builder_dangerous("127.0.0.1") + + let sender = SmtpTransport::builder_dangerous("127.0.0.1") .port(2525) - .build() - .send(&email) - .unwrap(); + .build(); + sender.send(&email).unwrap(); + } +} + +#[cfg(test)] +#[cfg(all(feature = "smtp-transport", feature = "builder", feature = "tokio02"))] +mod tokio_02 { + use lettre::{AsyncSmtpTransport, AsyncTransport, Message, Tokio02Executor}; + + use tokio02_crate as tokio; + + #[tokio::test] + async fn smtp_transport_simple_tokio02() { + let email = Message::builder() + .from("NoBody ".parse().unwrap()) + .reply_to("Yuin ".parse().unwrap()) + .to("Hei ".parse().unwrap()) + .subject("Happy new year") + .body(String::from("Be happy!")) + .unwrap(); + + let sender: AsyncSmtpTransport = + AsyncSmtpTransport::::builder_dangerous("127.0.0.1") + .port(2525) + .build(); + sender.send(email).await.unwrap(); + } +} + +#[cfg(test)] +#[cfg(all(feature = "smtp-transport", feature = "builder", feature = "tokio1"))] +mod tokio_1 { + use lettre::{AsyncSmtpTransport, AsyncTransport, Message, Tokio1Executor}; + + use tokio1_crate as tokio; + + #[tokio::test] + async fn smtp_transport_simple_tokio1() { + let email = Message::builder() + .from("NoBody ".parse().unwrap()) + .reply_to("Yuin ".parse().unwrap()) + .to("Hei ".parse().unwrap()) + .subject("Happy new year") + .body(String::from("Be happy!")) + .unwrap(); + + let sender: AsyncSmtpTransport = + AsyncSmtpTransport::::builder_dangerous("127.0.0.1") + .port(2525) + .build(); + sender.send(email).await.unwrap(); + } +} + +#[cfg(test)] +#[cfg(all( + feature = "smtp-transport", + feature = "builder", + feature = "async-std1" +))] +mod asyncstd_1 { + use lettre::{AsyncSmtpTransport, AsyncStd1Executor, AsyncTransport, Message}; + + #[async_std::test] + async fn smtp_transport_simple_asyncstd1() { + let email = Message::builder() + .from("NoBody ".parse().unwrap()) + .reply_to("Yuin ".parse().unwrap()) + .to("Hei ".parse().unwrap()) + .subject("Happy new year") + .body(String::from("Be happy!")) + .unwrap(); + + let sender: AsyncSmtpTransport = + AsyncSmtpTransport::::builder_dangerous("127.0.0.1") + .port(2525) + .build(); + sender.send(email).await.unwrap(); } } diff --git a/tests/transport_smtp_pool.rs b/tests/transport_smtp_pool.rs index 0830a9a..fca6377 100644 --- a/tests/transport_smtp_pool.rs +++ b/tests/transport_smtp_pool.rs @@ -1,7 +1,6 @@ #[cfg(all(test, feature = "smtp-transport", feature = "r2d2"))] -mod test { +mod sync { use lettre::{address::Envelope, SmtpTransport, Transport}; - use std::{sync::mpsc, thread}; fn envelope() -> Envelope { diff --git a/tests/transport_stub.rs b/tests/transport_stub.rs index 6259721..db05621 100644 --- a/tests/transport_stub.rs +++ b/tests/transport_stub.rs @@ -1,15 +1,10 @@ #[cfg(test)] #[cfg(feature = "builder")] -mod test { - use lettre::{transport::stub::StubTransport, Message}; - - #[cfg(feature = "tokio02")] - use tokio02_crate as tokio; +mod sync { + use lettre::{transport::stub::StubTransport, Message, Transport}; #[test] fn stub_transport() { - use lettre::Transport; - let sender_ok = StubTransport::new_ok(); let sender_ko = StubTransport::new_error(); let email = Message::builder() @@ -23,32 +18,65 @@ mod test { sender_ok.send(&email).unwrap(); sender_ko.send(&email).unwrap_err(); } +} - #[cfg(feature = "async-std1")] - #[async_std::test] - async fn stub_transport_asyncstd1() { - use lettre::AsyncTransport; +#[cfg(test)] +#[cfg(all(feature = "builder", feature = "tokio02"))] +mod tokio_02 { + use lettre::{transport::stub::StubTransport, AsyncTransport, Message}; - let sender_ok = StubTransport::new_ok(); - let sender_ko = StubTransport::new_error(); - let email = Message::builder() - .from("NoBody ".parse().unwrap()) - .reply_to("Yuin ".parse().unwrap()) - .to("Hei ".parse().unwrap()) - .subject("Happy new year") - .date("Tue, 15 Nov 1994 08:12:31 GMT".parse().unwrap()) - .body(String::from("Be happy!")) - .unwrap(); + use tokio02_crate as tokio; - sender_ok.send(email.clone()).await.unwrap(); - sender_ko.send(email).await.unwrap_err(); - } - - #[cfg(feature = "tokio02")] #[tokio::test] async fn stub_transport_tokio02() { - use lettre::AsyncTransport; - + let sender_ok = StubTransport::new_ok(); + let sender_ko = StubTransport::new_error(); + let email = Message::builder() + .from("NoBody ".parse().unwrap()) + .reply_to("Yuin ".parse().unwrap()) + .to("Hei ".parse().unwrap()) + .subject("Happy new year") + .date("Tue, 15 Nov 1994 08:12:31 GMT".parse().unwrap()) + .body(String::from("Be happy!")) + .unwrap(); + + sender_ok.send(email.clone()).await.unwrap(); + sender_ko.send(email).await.unwrap_err(); + } +} + +#[cfg(test)] +#[cfg(all(feature = "builder", feature = "tokio1"))] +mod tokio_1 { + use lettre::{transport::stub::StubTransport, AsyncTransport, Message}; + + use tokio1_crate as tokio; + + #[tokio::test] + async fn stub_transport_tokio1() { + let sender_ok = StubTransport::new_ok(); + let sender_ko = StubTransport::new_error(); + let email = Message::builder() + .from("NoBody ".parse().unwrap()) + .reply_to("Yuin ".parse().unwrap()) + .to("Hei ".parse().unwrap()) + .subject("Happy new year") + .date("Tue, 15 Nov 1994 08:12:31 GMT".parse().unwrap()) + .body(String::from("Be happy!")) + .unwrap(); + + sender_ok.send(email.clone()).await.unwrap(); + sender_ko.send(email).await.unwrap_err(); + } +} + +#[cfg(test)] +#[cfg(all(feature = "builder", feature = "async-std1"))] +mod asyncstd_1 { + use lettre::{transport::stub::StubTransport, AsyncTransport, Message}; + + #[async_std::test] + async fn stub_transport_asyncstd1() { let sender_ok = StubTransport::new_ok(); let sender_ko = StubTransport::new_error(); let email = Message::builder()