Analizo
view release on metacpan or search on metacpan
lib/Test/Analizo.pm view on Meta::CPAN
sub on_dir {
my ($dir, $code) = @_;
my $previous_pwd = `pwd`;
chomp $previous_pwd;
chdir $dir;
if (wantarray()) {
my @list = &$code();
chdir $previous_pwd;
return @list;
}
my $result = &$code();
chdir $previous_pwd;
return $result;
}
sub mock {
my ($object) = @_;
Test::MockObject::Extends->new($object);
}
sub tmpdir {
my ($package, $filename, $line) = caller;
return tmpdir_for($filename);
}
use Cwd 'abs_path';
sub tmpdir_for {
my ($filename) = @_;
$filename = abs_path($filename);
return $filename . '.tmpdir';
}
sub on_tmpdir {
my ($code) = @_;
my $tmpdir = tmpdir;
mkdir $tmpdir;
my $result = on_dir($tmpdir, $code);
remove_tree $tmpdir;
return $result;
}
sub unpack_sample_git_repository {
my ($code, @repos) = @_;
if (!@repos) {
@repos = ('evolution');
}
my ($package, $filename, $line) = caller;
my $tmpdir = tmpdir_for($filename);
system('mkdir', '-p', $tmpdir);
for my $repo (@repos) {
system('tar', 'xzf', "t/samples/$repo.tar.gz", '-C', $tmpdir,
'--no-same-owner');
}
&$code();
system('rm', '-rf', $tmpdir);
}
sub readfile {
my ($filename) = @_;
open INPUT, $filename;
my @lines = <INPUT>;
close INPUT;
chomp @lines;
return @lines;
}
1;
( run in 0.759 second using v1.01-cache-2.11-cpan-5b529ec07f3 )