use File::Spec::Functions qw/catdir catfile/;
use File::Temp qw/tempfile tempdir/;
-use Test::More tests => 2 + 3 * 1;
+use Test::More tests => 2 + 2 * 2 + 11 * (3 + 1);
use App::Rgit;
my $tmpdir = tempdir(CLEANUP => 1);
my $cwd = cwd;
chdir $tmpdir or die "chdir($tmpdir): $!";
-my @expected = sort { $a->[0] cmp $b->[0] } build({
+my @expected = sort { $a->[1] cmp $b->[1] } build({
x => {
a => {
_ => repo('a', 0),
},
z => {
'.git' => {
- HEAD => 1
+ refs => { dummy => 1 },
}
}
},
},
't' => {
't.git' => {
- HEAD => 1,
refs => { dummy => 1 },
+ objects => { dummy => 1 },
}
}
},
'^n'
], @expected;
-for my $cmd (qw/commit/) {
+for my $cmd (qw/commit FAIL/) {
my ($fh, $filename) = tempfile(UNLINK => 1);
my $ar = App::Rgit->new(
git => abs_path('t/bin/git'),
);
isnt($ar, undef, "each $cmd has a defined object");
my $exit = $ar->run;
- is($exit, 0, "each $cmd returned 0");
- my @lines = sort split /\n/, do { local $/; <$fh> };
+ my $fail = $cmd eq 'FAIL' ? 1 : 0;
+ is($exit, $fail, "each $cmd returned $fail");
+ my @lines = split /\n/, do { local $/; <$fh> };
my $res = [ map [ split /\|/, $_ ], @lines ];
- my $exp = [ map [ $cmd, @$_ ], @expected ];
- is_deeply($res, $exp, "each $cmd did the right thing");
+ my $exp = [ map [ $cmd, @$_ ], $fail ? $expected[0] : @expected ];
+ for my $i (0 .. $#$exp) {
+ my $e = $exp->[$i];
+ my $r = shift @$res;
+ isnt($r, undef, "each $cmd visited repository $i");
+SKIP:
+ {
+ skip 'didn\'t visited that repo' => 10 unless defined $r;
+ is($r->[$_], $e->[$_], "each $cmd argument $_ for repository $i is ok")
+ for 0 .. 9;
+ }
+ }
}