- my $exit = App::Rgit->new(
- git => abs_path('t/bin/git'),
- root => $repos[$_],
- cmd => 'commit',
- args => [ abs_path($filename), 'commit', qw/^n ^g ^w ^b ^G ^W ^B ^R ^^/ ]
- )->run;
- is($exit, 0, "each $_ returned 0");
- my @lines = sort split /\n/, do { local $/; <$fh> };
+ my $policy = App::Rgit::Policy->new(
+ @_ > 2 ? (name => 'Callback', callback => $_[2])
+ : (name => 'Default')
+ );
+ my $ar = App::Rgit->new(
+ git => abs_path('t/bin/git'),
+ root => $tmpdir,
+ cmd => $cmd,
+ args => [ abs_path($filename), $cmd, qw/%n %g %w %b %G %W %B %R %%n %x/ ],
+ policy => $policy,
+ );
+ isnt($ar, undef, "each $cmd has a defined object");
+ my $exit;
+ my $fail = $cmd eq 'FAIL' ? 1 : 0;
+ if ($fail) {
+ ($exit, undef) = $ar->run;
+ } else {
+ $exit = $ar->run;
+ }
+ is($exit, $fail, "each $cmd returned $fail");
+ my @lines = split /\n/, do { local $/; <$fh> };