X-Git-Url: http://git.vpit.fr/?p=perl%2Fmodules%2Frgit.git;a=blobdiff_plain;f=t%2F21-once.t;fp=t%2F21-once.t;h=93a184ce3ce1c90e861131c9fd2982c5b8c8028c;hp=65accd21f74d428c7611dac9dc9bd60c9aff6b2e;hb=e09a125b42420241c34529697c250ad795f1c59e;hpb=270525a9f32911ff55fc0ee7b263a9eb3cd0a3ce diff --git a/t/21-once.t b/t/21-once.t index 65accd2..93a184c 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 Cwd qw/abs_path/; use File::Temp qw/tempfile/; -use Test::More tests => 9 * 5; +use Test::More; use App::Rgit; +use lib 't/lib'; +use App::Rgit::TestUtils qw/can_run_git/; + +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 ); -local $ENV{GIT_DIR} = 't'; +local $ENV{GIT_DIR} = 't'; local $ENV{GIT_EXEC_PATH} = abs_path('t/bin/git'); for my $cmd (qw/daemon gui help init version/) { 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 %%/ ]; 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"; + } }