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'; }