4
use MooX::Types::MooseLike::Base qw/:all/;
5
use Class::Load qw/load_class/;
8
has [qw/iterator_class result_type/] => (
31
isa => InstanceOf ['Path::Tiny']
40
sub _build_description { return shift->iterator_class }
44
my $dir = Path::Tiny->tempdir;
45
$dir->child($_)->touchpath for @{ $self->test_files };
49
sub _build_rule_object {
51
load_class( $self->iterator_class );
52
return $self->iterator_class->new;
55
sub test_result_type {
56
my ( $self, $file ) = @_;
57
if ( my $type = $self->result_type ) {
58
isa_ok( $file, $type, $file );
61
is( ref($file), '', "$file is string" );
65
test 'find files' => sub {
67
$self->clear_rule_object; # make sure have a new one each time
70
my $rule = $self->rule_object;
71
my @files = $rule->file->all( $self->tempdir, { relative => 1 } );
73
is_deeply( \@files, $self->test_files, "correct list of files" )
74
or diag explain \@files;
76
$self->test_result_type($_) for @files;