File-RandomGenerator
view release on metacpan or search on metacpan
t/10-methods.t view on Meta::CPAN
#!/usr/bin/perl
use Modern::Perl;
use Test::More;
use Cwd;
use Data::Dumper;
use File::Temp qw/ tempdir /;
###### MAIN ######
use_ok('File::RandomGenerator');
test_constructor();
test_generate();
# TODO add test to ensure you return to the original dir
done_testing();
###### END MAIN ######
sub test_constructor {
my $frg = File::RandomGenerator->new;
ok( ref $frg eq 'File::RandomGenerator' );
}
sub test_generate {
my $tmpdir = tempdir( DIR => "/tmp" );
my $frg = File::RandomGenerator->new( root_dir => $tmpdir );
my $expected_cnt = get_file_cnt( $frg->root_dir ) + $frg->num_files;
ok( $frg->generate );
my $actual_cnt = get_file_cnt( $frg->root_dir );
ok( $expected_cnt == $actual_cnt )
or say "expected $expected_cnt files, but found $actual_cnt";
$tmpdir = tempdir( DIR => "/tmp" );
$frg = File::RandomGenerator->new( root_dir => $tmpdir, depth => 3 );
$expected_cnt = get_file_cnt( $frg->root_dir ) + $frg->num_files;
ok( $frg->generate );
ok( $expected_cnt == get_file_cnt( $frg->root_dir ) );
ok_dir_cnt( $frg->root_dir, $frg->width, 1, $frg->depth );
}
sub ok_dir_cnt {
my $dir = shift;
my $cnt = shift;
my $curr_depth = shift;
my $max_depth = shift;
my $cwd = getcwd();
chdir $dir or die "failed to chdir to $dir: $!";
my $found = 0;
opendir my $dh, $dir or die "$!";
while ( my $e = readdir($dh) ) {
next if $e eq '.' or $e eq '..';
if ( -d $e ) {
$found++;
( run in 1.066 second using v1.01-cache-2.11-cpan-2398b32b56e )