package RandomFilePassesPathsToCheckRoutine;
use base qw/RandomFileMethodBase/;
use TestConstants;

use strict;
use warnings;

use Test::More;

sub check_routine_gets_paths : Test(2) {
	my $self = shift;
	my @files_shift = ();
	my @files_it    = ();
	my %files = ('with shift' => \@files_shift, 'with $_' => \@files_it);
	my %check_routine = (
		'with shift' => sub { push @files_shift, shift() },
		'with $_'    => sub { push @files_it,    $_ }
	);
	while (my ($check_desc, $check_func) = each %check_routine) {
		my @arg = (-dir => REC_DIR, -recursive => 1, -check => $check_func);
		my $exp = Set::Scalar->new(); 
		$exp->insert( $self->random_file(@arg) ) for (1 .. SAMPLE_SIZE);
		my $found_files = Set::Scalar->new( @{$files{$check_desc}} );
		is $found_files, $exp, "Arguments passed to check $check_desc";
	}
}

1;
