The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
use Test::More qw[no_plan];
use File::Path;
use strict;
$^W = 1;

BEGIN {
    use_ok 'Email::Delete', qw[delete_message];
}

my @boxes = ('t/Mail/Maildir/', 't/Mail/mbox', 't/Mail/mbox2');
seed_mail(@boxes);

foreach my $box (@boxes) {
    my $n = delete_message from     => $box,
                           matching => sub {
                               my $msg = shift;
                               $msg->header("From") =~ /casey\@geeknest\.com/;
                           };
    is $n, 2, "deleted proper messages for '$box'";
}

my $n = delete_message from     => $boxes[1],
                       matching => sub { 1 };
is $n, 1, 'calling delete on mbox again';

unseed_mail(@boxes);

sub seed_mail {
    my @boxes = @_;
    use_ok 'Email::LocalDelivery';
    unseed_mail(@boxes);

    
    my @from = ('casey@geeknest.com',
                'test@example.com',
                'casey@geeknest.com');
    my @to   = ('test@example.com',
                'casey@geeknest.com',
                'test@example.com');
    while ( my $from = shift @from ) {
        my $to = shift @to;
        Email::LocalDelivery->deliver(<<__MAIL__, @boxes);
From: $from
To: $to
Subject: Test message

Enjoy it.
__MAIL__
    }
}

sub unseed_mail {
    my @boxes = @_;
    rmtree 't/Mail';
}