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 )