The Perl Toolchain Summit 2025 Needs You: You can help 🙏 Learn more

use strict;
use lib qw(./lib ./blib/lib);
use Sisimai;
my $PackageName = 'Sisimai';
my $UndefinedES = './set-of-emails/to-be-debugged-because/reason-is-undefined';
MAKE_TEST: {
plan 'skip_all', sprintf("%s does not exist", $UndefinedES) unless -d $UndefinedES;
my $v = $PackageName->make($UndefinedES);
isa_ok $v, 'ARRAY';
ok scalar @$v, 'entries = '.scalar @$v;
for my $r ( @$v ) {
isa_ok $r, 'Sisimai::Data';
isa_ok $r->timestamp, 'Sisimai::Time';
isa_ok $r->addresser, 'Sisimai::Address';
isa_ok $r->recipient, 'Sisimai::Address';
ok $r->addresser->address, '->addresser = '.$r->addresser->address;
ok $r->recipient->address, '->recipient = '.$r->recipient->address;
ok $r->deliverystatus, '->deliverystatus = '.$r->deliverystatus;
is $r->reason, 'undefined', '->reason = undefined';
my $h = $r->damn;
isa_ok $h, 'HASH';
ok scalar keys %$h;
is $h->{'recipient'}, $r->recipient->address, '->recipient = '.$h->{'recipient'};
is $h->{'addresser'}, $r->addresser->address, '->addresser = '.$h->{'addresser'};
for my $p ( keys %$h ) {
next if ref $r->$p;
next if $p eq 'subject';
if( $p eq 'catch' ) {
is $h->{ $p }, '', '->'.$p.' = ""';
} else {
is $h->{ $p }, $r->$p, '->'.$p.' = '.$h->{ $p };
}
}
my $j = $r->dump('json');
ok length $j, 'length(dump("json")) = '.length $j;
}
}
done_testing;