The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
#!/usr/bin/perl

use strict;
use warnings;
use Test::More tests => 11;
use File::Find::Parallel;

ok my $ffp = File::Find::Parallel->new, 'created OK';
isa_ok $ffp, 'File::Find::Parallel';

my $any = $ffp->any_iterator;
is ref $any, 'CODE', 'iterator is code ref';
ok !$any->(), 'empty iterator';

my $all = $ffp->all_iterator;
is ref $all, 'CODE', 'iterator is code ref';
ok !$all->(), 'empty iterator';

my @dirs = ( 'a', 'b', 'c' );

$ffp->set_dirs( @dirs );
my @got = $ffp->get_dirs;
is_deeply \@got, \@dirs, 'getter, setter OK';

push @dirs, 'd';

$ffp->set_dirs( @dirs );
@got = $ffp->get_dirs;
is_deeply \@got, \@dirs, 'getter, setter OK';

my @extra  = ( 'e', 'f' );
push @dirs, @extra;
$ffp->add_dirs(@extra);
@got = $ffp->get_dirs;
is_deeply \@got, \@dirs, 'add_dirs OK';

ok my $nffp = File::Find::Parallel->new(@dirs), 'created OK';
@got = $ffp->get_dirs;
is_deeply \@got, \@dirs, 'pass dirs to constructor OK';