The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
use strict;
use Test::More;

BEGIN {
    use_ok 'Parse::Crontab';
}

my $crontab = new_ok 'Parse::Crontab', [
    content => <<'...',
# comment
HOGE=FUGA
* * * * * perl
@daily perl
...
];

ok $crontab->is_valid;
is scalar @{$crontab->entries}, 4;
isa_ok $crontab->entries->[0], 'Parse::Crontab::Entry::Comment';
isa_ok $crontab->entries->[1], 'Parse::Crontab::Entry::Env';
isa_ok $crontab->entries->[2], 'Parse::Crontab::Entry::Job';
isa_ok $crontab->entries->[3], 'Parse::Crontab::Entry::Job';

my @jobs = $crontab->jobs;
is scalar @jobs, 2;
is $jobs[0]->command, 'perl';

$crontab = new_ok 'Parse::Crontab', [
    content => <<'...',
# comment
"HOGE=FUGA
* * * *R * perl
@daily perl
...
];

ok !$crontab->is_valid;
ok $crontab->error_messages;


$crontab = new_ok 'Parse::Crontab', [
    content => <<'...',
*/1 * * * * songmu perl
@daily    songmu perl
...
    has_user_field => 1,
];

for my $job ($crontab->jobs) {
    is $job->user, 'songmu';
    is $job->command, 'perl';
}

done_testing;