{
my $fi2 = '';
$fi2 = FileImporter->new('t/test_data/really_good');
my %ref_check = (
_parseable_files => 'ARRAY',
_nonparseable_files => 'ARRAY',
_files => 'HASH',
_bad_header_files => 'ARRAY',
);
ref_check($fi2, \%ref_check); # tests are run in the subroutine
}
####
{ ### New test place in front of the earlier test
my $fi;
lives_ok { $fi = FileImporter->new('t/test_data/file'); }
'creates object';
$fi->DESTROY;
FileImporter->DESTROY;
}
{ ### Same test as before, now fails with new test in front of it
my $fi2 = '';
$fi2 = FileImporter->new('t/test_data/really_good');
my %ref_check = (
_parseable_files => 'ARRAY',
_nonparseable_files => 'ARRAY',
_files => 'HASH',
_bad_header_files => 'ARRAY',
);
ref_check($fi2, \%ref_check);
}
##
##
{
my $iterator;
sub _file_iterator {
my @files = @_;
my $f = sub {
shift @files;
};
return $f;
}
sub get_next_file {
my $s = shift;
if (!$s->{_selected_file}) {
my @files = @_ ? @_ : $s->get_files;
$iterator = _file_iterator(@files) if !$iterator;
}
my $next_file = $iterator->();
$s->{_selected_file} = $next_file;
$iterator = '' if !$next_file;
return $next_file;
}
}