X-Git-Url: http://git.vpit.fr/?p=perl%2Fmodules%2Frgit.git;a=blobdiff_plain;f=t%2F21-once.t;h=51224ab8b5d38aa2442a1bcaba75434520b7acfb;hp=65accd21f74d428c7611dac9dc9bd60c9aff6b2e;hb=HEAD;hpb=9fa31a712601956c8e4c34cbfc0af111346920c3 diff --git a/t/21-once.t b/t/21-once.t index 65accd2..51224ab 100644 --- a/t/21-once.t +++ b/t/21-once.t @@ -3,36 +3,51 @@ use strict; use warnings; -use Cwd qw/abs_path/; -use File::Temp qw/tempfile/; +use Cwd qw; +use File::Temp qw; -use Test::More tests => 9 * 5; +use Test::More; use App::Rgit; +use lib 't/lib'; +use App::Rgit::TestUtils qw; + +my ($can_run, $reason) = can_run_git; +if ($can_run) { + plan tests => 9 * 5; +} else { + plan skip_all => "Can't run the mock git executable on this system: $reason"; +} + my @expected = ( - ([ [ qw/%n %g %w %b %%/ ] ]) x 5 + ([ [ qw<%n %g %w %b %%> ] ]) x 5 ); -local $ENV{GIT_DIR} = 't'; -local $ENV{GIT_EXEC_PATH} = abs_path('t/bin/git'); +local $ENV{GIT_DIR} = 't'; +local $ENV{GIT_EXEC_PATH} = 't/bin/git'; -for my $cmd (qw/daemon gui help init version/) { +for my $cmd (qw) { my ($fh, $filename) = tempfile(UNLINK => 1); + my $ar = App::Rgit->new( git => $ENV{GIT_EXEC_PATH}, root => $ENV{GIT_DIR}, cmd => $cmd, - args => [ abs_path($filename), $cmd, qw/%n %g %w %b %%/ ] + args => [ abs_path($filename), $cmd, qw<%n %g %w %b %%> ], ); - isnt($ar, undef, "once $cmd has a defined object"); + isa_ok $ar, 'App::Rgit', "once $cmd is an App::Rgit object"; + my $exit = $ar->run; - is($exit, 0, "once $cmd returned 0"); + is $exit, 0, "once $cmd returned 0"; + my @lines = sort split /\n/, do { local $/; <$fh> }; - is(@lines, 1, "once $cmd visited only one repo"); + is @lines, 1, "once $cmd visited only one repo"; + my $r = [ split /\|/, defined $lines[0] ? $lines[0] : '' ]; - my $e = [ $cmd, qw/%n %g %w %b %%/ ]; + my $e = [ $cmd, qw<%n %g %w %b %%> ]; s/[\r\n]*$// for @$r; - is($r->[$_], $e->[$_], "once $cmd argument $_ is ok") - for 0 .. 5; + for (0 .. 5) { + is $r->[$_], $e->[$_], "once $cmd argument $_ is ok"; + } }