The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
#!perl
use strict;
use warnings;

use File::Spec ();
use File::Temp ();

use Test::More 'no_plan';

BEGIN { use_ok('Mail::Audit'); }

sub readfile {
  my ($name) = @_;
  local *MESSAGE_FILE;
  open MESSAGE_FILE, "<$name" or die "coudn't read $name: $!";
  my @lines = <MESSAGE_FILE>;
  close MESSAGE_FILE;
  return \@lines;
}

my $flat_message = readfile('t/messages/simple.msg');
my $mime_message = readfile('t/messages/mime-text.msg');

{
  my $audit = Mail::Audit->new(
    data      => $flat_message,
    log       => "/dev/null",
  );

  ok(!$audit->is_mime, "A flat message isn't MIME.");

  is($audit->subject, 'gorp', 'subject correct');
  is($audit->get('subject'), 'gorp', 'subject correct (via header)');

  my @subject = $audit->get('subject');
  is_deeply(\@subject, ["gorp"], "subject correct (via header, list context)");

}

{
  my $audit = Mail::Audit->new(
    data      => $mime_message,
    log       => "/dev/null",
  );

  ok($audit->is_mime, "A mime message is MIME, of course.");

  is($audit->subject, 'text attached', 'subject correct');
  is($audit->get('subject'), 'text attached', 'subject correct (via header)');

  my @subject = $audit->get('subject');
  is_deeply(
    \@subject,
    ["text attached"],
    "subject correct (via header, list context)"
  );
}