mail-core 0.6.1

[mail/core] provides the Mail type for the mail crate (inkl. multipart mime bodies, builder and resource type)
Documentation
use std::path::Path;
use std::env;

use futures::Future;
use soft_ascii_string::SoftAsciiString;
use headers::header_components::{MediaType, Domain};
use mail_core::{
    EncData,
    UseMediaType,
    IRI,
    Source,
    Context,
    Resource
};
use mail_core::context::CompositeContext;
use mail_core::default_impl::{FsResourceLoader, simple_cpu_pool, HashedIdGen, simple_context};

fn dumy_ctx(resource_loader: FsResourceLoader) -> simple_context::Context {
    let domain = Domain::from_unchecked("hy.test".to_owned());
    let unique_part = SoftAsciiString::from_unchecked("w09ad8f");
    let id_gen = HashedIdGen::new(domain, unique_part).unwrap();
    CompositeContext::new(resource_loader, simple_cpu_pool(), id_gen)
}

fn loaded_resource(path: &str, media_type: &str, name: Option<&str>) -> EncData {
    let resource_loader: FsResourceLoader = FsResourceLoader::new(
        env::current_dir().unwrap().join(Path::new("./test_resources/"))
    );

    let ctx = dumy_ctx(resource_loader);


    let source = Source {
        iri: IRI::from_parts("path", path).unwrap(),
        use_media_type: UseMediaType::Default(MediaType::parse(media_type).unwrap()),
        use_file_name: name.map(|s|s.to_owned()),
    };

    ctx.load_transfer_encoded_resource(&Resource::Source(source)).wait().unwrap()
}


#[test]
fn get_name_from_path() {
    let enc_data =  loaded_resource("img.png", "image/png", None);
    assert_eq!(enc_data.file_meta().file_name, Some("img.png".to_owned()));
}

#[test]
fn use_name_is_used() {
    let enc_data =
        loaded_resource("img.png", "image/png", Some("That Image"));

    assert_eq!(enc_data.file_meta().file_name, Some("That Image".to_owned()));
}