The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
#!/usr/bin/env perl
#
# Test coercion from Email::Abstract to Mail::Message

use strict;
use warnings;

use lib qw(. .. tests);
use Tools;

use Test::More;
use Mail::Message;

BEGIN
{   eval {require Email::Abstract; require Email::Simple};
    if($@)
    {   plan skip_all => "requires Email::Abstract.";
        exit 0;
    }

    require Mail::Message;
    plan tests => 6;
}

my $email = Email::Simple->new(<<'END_MESSAGE');
From: mailtools@overmeer.net
To: the users
Subject: use Mail::Box
In-Reply-To: <023984hjlur29420@sruoiu.nl>
X-Again: repeating header
X-Again: repeating header again
X-Again: repeating header and again

MIME::Entity is written by Eriq, and extends Mail::Internet with many
new capabilities, like multipart bodies.  Actually, although it says
to extend, it more or less reimplements most methods and conflicts
with the other.  Even the Mail::Internet constructor does not work:
only the build() can be used to safely construct a message.  Do not
use it anymore!
END_MESSAGE

isa_ok($email, 'Email::Simple');

is($email->header('in-reply-to'), '<023984hjlur29420@sruoiu.nl>');

my $abstract = Email::Abstract->new($email);

isa_ok($abstract, 'Email::Abstract');

is($abstract->get_header('in-reply-to'), '<023984hjlur29420@sruoiu.nl>');

my $message = Mail::Message->coerce($abstract);

isa_ok($message, 'Mail::Message');

is($message->get('in-reply-to'), '<023984hjlur29420@sruoiu.nl>');