Files
File-DirWalk/t/1.t
Jens Luedicke ff77f66d82 M: Added currentDepth() method.
The getDepth() method will return the default (or user-specified) directory traversel depth. Calling the setDepth method with a negative value will make the method die.
2013-03-09 16:27:02 +01:00

92 lines
1.7 KiB
Perl

use Test::More qw(no_plan);
use Test::Exception;
use File::Basename;
use File::DirWalk;
my $perl_path = dirname($^X);
my $perl_interpreter = basename($^X);
$dw = new File::DirWalk();
ok( ref($dw) eq 'File::DirWalk' );
is ($dw->getDepth(), 0);
dies_ok { $dw->setDepth(-1) };
is ($dw->getDepth(), 0);
ok ($dw->setDepth(1));
is ($dw->getDepth(), 1);
ok ($dw->setHandler(onBeginWalk => sub { SUCCESS }));
ok ($dw->setHandler(onLink => sub { SUCCESS }));
ok ($dw->setHandler(onFile => sub { SUCCESS }));
ok ($dw->setHandler(onDirEnter => sub { SUCCESS }));
ok ($dw->setHandler(onDirLeave => sub { SUCCESS }));
dies_ok {$dw->setHandler(onBeginWalk => 0)};
dies_ok {$dw->setHandler(onLink => 0)};
dies_ok {$dw->setHandler(onFile => 0)};
dies_ok {$dw->setHandler(onDirEnter => 0)};
dies_ok {$dw->setHandler(onDirLeave => 0)};
dies_ok {$dw->setHandler(Foo => sub {})};
$dw->onFile(sub {
my ($path) = @_;
if (basename($path) eq "1.t") {
return ABORTED;
}
return SUCCESS;
});
ok( $dw->walk($0) == ABORTED );
$dw->onDirEnter(sub {
my ($path) = @_;
if ($path eq $perl_path) {
return FAILED;
}
return SUCCESS;
});
ok( $dw->walk($perl_path) == FAILED );
$dw->onBeginWalk(sub {
my ($path) = @_;
if (dirname($path) eq $dw->currentDir) {
return ABORTED;
}
return SUCCESS;
});
ok( $dw->walk($perl_path) == ABORTED );
$dw->onBeginWalk(sub {
my ($path) = @_;
if ($path eq $dw->currentPath) {
return ABORTED;
}
return SUCCESS;
});
ok( $dw->walk($perl_path) == ABORTED );
$dw = new File::DirWalk();
$dw->onFile(sub {
my ($path) = @_;
if ($dw->currentBasename() eq $perl_interpreter) {
return 42;
}
return SUCCESS;
});
ok( $dw->walk($perl_path) == 42 );