maik 0.2.0

A mock SMTP server library
Documentation
use crate::helpers::{
    new_message, TestInfoBuilder, DEFAULT_BODY, DEFAULT_MESSAGE, DEFAULT_RECIPIENT,
};
use lettre::{transport::smtp::client::Tls, Transport};
use maik::MailAssertion;

#[test]
fn basic() {
    let test_info = TestInfoBuilder::new().default_auth_user().build();
    let mailer = test_info.mailer_builder.tls(Tls::None).build();
    assert!(mailer.send(&DEFAULT_MESSAGE).is_ok());

    let ma = MailAssertion::new().body_is(DEFAULT_BODY);
    assert!(test_info.server.assert(ma));
}

#[test]
fn forbidden_sequence() {
    let test_info = TestInfoBuilder::new().default_auth_user().build();
    let mailer = test_info.mailer_builder.tls(Tls::None).build();
    let body = "hai hai\r\n.\r\nnana";
    let message = new_message(DEFAULT_RECIPIENT, body);
    assert!(mailer.send(&message).is_ok());

    let ma = MailAssertion::new().body_is(body);
    assert!(test_info.server.assert(ma));
}

#[test]
fn lines_starting_with_period() {
    let test_info = TestInfoBuilder::new().default_auth_user().build();
    let mailer = test_info.mailer_builder.tls(Tls::None).build();
    let body = "hai hai\r\n.nana\r\n.";
    let message = new_message(DEFAULT_RECIPIENT, body);
    assert!(mailer.send(&message).is_ok());

    let ma = MailAssertion::new().body_is(body);
    assert!(test_info.server.assert(ma));
}