#!perl -T
use strict;
use warnings;
use Test::More tests => 10;
use File::Next;
BAD_PARMS_CAUGHT: {
my @errors;
sub error_catcher {
my $error = shift;
push( @errors, $error );
return;
}
my $iter =
File::Next::files( {
error_handler => \&error_catcher,
wango => 'ze tango',
}, 't/pod.t' );
is( scalar @errors, 1, 'Caught one error' );
like( $errors[0], qr/Invalid.+files.+wango/, 'And it looks reasonable' );
}
BAD_PARMS_UNCAUGHT: {
my $bad_iterator = eval {
my $iter =
File::Next::dirs( {
wango => 'ze tango',
}, 't/pod.t' );
};
ok( !defined($bad_iterator), 'Constructor fails with bad parameters' );
like( $@, qr/Invalid.+dirs.+wango/, 'And it looks reasonable' );
}
FILES_AS_METHOD: {
my $bad_iterator = eval {
my $iter =
File::Next->files( {
wango => 'ze tango',
}, 't/pod.t' );
};
ok( !defined($bad_iterator), 'Constructor fails with bad parameters' );
like( $@, qr/File::Next::files must not be invoked as File::Next->files/, 'And it looks reasonable' );
}
DIRS_AS_METHOD: {
my $bad_iterator = eval {
my $iter =
File::Next->dirs( {
wango => 'ze tango',
}, 't/pod.t' );
};
ok( !defined($bad_iterator), 'Constructor fails with bad parameters' );
like( $@, qr/File::Next::dirs must not be invoked as File::Next->dirs/, 'And it looks reasonable' );
}
EVERYTHING_AS_METHOD: {
my $bad_iterator = eval {
my $iter =
File::Next->everything( {
wango => 'ze tango',
}, 't/pod.t' );
};
ok( !defined($bad_iterator), 'Constructor fails with bad parameters' );
like( $@, qr/File::Next::everything must not be invoked as File::Next->everything/, 'And it looks reasonable' );
}