]> git.vpit.fr Git - perl/modules/rgit.git/blobdiff - t/15-failures.t
Use @ as the escape character. ^ is actually an escape char of cmd.exe
[perl/modules/rgit.git] / t / 15-failures.t
index 52700452c0fd517f9ad2961eecc0c35583fca5b9..296ffc843cfb144abcdd02969daf2090306d6323 100644 (file)
@@ -3,7 +3,10 @@
 use strict;
 use warnings;
 
-use Test::More tests => 34;
+use Cwd qw/cwd/;
+use File::Spec::Functions qw/catdir/;
+
+use Test::More tests => 45;
 
 use App::Rgit;
 
@@ -20,27 +23,27 @@ $res = eval { App::Rgit->new(root => $0) };
 is($@,   '',    'App::Rgit->new(): wrong root: does not croak');
 is($res, undef, 'App::Rgit->new(): wrong root: returns undef');
 
-$res = eval { App::Rgit->new(root => 't/repos') };
+$res = eval { App::Rgit->new(root => 't') };
 is($@,   '',    'App::Rgit->new(): no git: does not croak');
 is($res, undef, 'App::Rgit->new(): no git: returns undef');
 
-$res = eval { App::Rgit->new(root => 't/repos', git => $0) };
+$res = eval { App::Rgit->new(root => 't', git => $0) };
 is($@,   '',    'App::Rgit->new(): wrong git: does not croak');
 is($res, undef, 'App::Rgit->new(): wrong git: returns undef');
 
-$res = eval { App::Rgit->new(root => 't/repos', git => 't/bin/git') };
+$res = eval { App::Rgit->new(root => 't', git => 't/bin/git') };
 is($@,       '',          'App::Rgit->new(): no cmd: does not croak');
 isa_ok($res, 'App::Rgit', 'App::Rgit->new(): no cmd: returns an object');
 
-$res = eval { App::Rgit->new(root => 't/repos', git => 't/bin/git', cmd => 'version'); };
+$res = eval { App::Rgit->new(root => 't', git => 't/bin/git', cmd => 'version'); };
 is($@,       '',          'App::Rgit->new(): no args: does not croak');
 isa_ok($res, 'App::Rgit', 'App::Rgit->new(): no args: returns an object');
 
-$res = eval { $res->new(root => 't/repos', git => 't/bin/git', cmd => 'version'); };
+$res = eval { $res->new(root => 't', git => 't/bin/git', cmd => 'version'); };
 is($@,       '',          '$ar->new(): no args: does not croak');
 isa_ok($res, 'App::Rgit', '$ar->new(): no args: returns an object');
 
-$res = eval { App::Rgit::new(undef, root => 't/repos', git => 't/bin/git', cmd => 'version'); };
+$res = eval { App::Rgit::new(undef, root => 't', git => 't/bin/git', cmd => 'version'); };
 is($@,       '',         'undef->App::Rgit::new(): no args: does not croak');
 isa_ok($res, 'App::Rgit','undef->App::Rgit::new(): no args: returns an object');
 
@@ -86,3 +89,38 @@ $res = eval { App::Rgit::Command->action('beer') };
 is($@, '', 'App::Rgit::Command->action("beer"): does not croak');
 is($res, 'App::Rgit::Test::Pub', 'App::Rgit::Command->action("beer"): returns valid answer');
 
+$res = eval { App::Rgit::Command->new(cmd => 'beer') };
+like($@, qr!Couldn't\s+load\s+App::Rgit::Test::Pub\s*:!, 'App::Rgit::Command->new(cmd => "pub"): croaks');
+
+use App::Rgit::Config;
+
+my $arc = App::Rgit::Config->new(root => 't', git => 't/bin/git');
+
+$res = eval { $arc->repos };
+is($@, '', '$arc->repos: does not croak');
+is_deeply($res, [ ], '$arc->repos: found nothing');
+
+$res = eval { $arc->repos };
+is($@, '', '$arc->repos: does not croak');
+is_deeply($res, [ ], '$arc->repos: cached ok');
+
+use App::Rgit::Repository;
+
+my $cwd = cwd;
+my $t = catdir($cwd, 't');
+chdir $t or die "chdir($t): $!";
+
+$res = eval { App::Rgit::Repository->new() };
+is($@, '', 'App::Rgit::Repository->new: no dir: does not croak');
+is($res, undef, 'App::Rgit::Repository->new: no dir: returns undef');
+
+$res = eval { App::Rgit::Repository->new(fake => 1) };
+is($@, '', 'App::Rgit::Repository->new: no dir, fake: does not croak');
+isa_ok($res, 'App::Rgit::Repository', 'App::Rgit::Repository->new: no dir, fake: returns a valid object');
+
+chdir $cwd or die "chdir($cwd): $!";
+
+$res = eval { App::Rgit::Repository->new(dir => 't', fake => 1) };
+is($@, '', 'App::Rgit::Repository->new: relative dir, fake: does not croak');
+isa_ok($res, 'App::Rgit::Repository', 'App::Rgit::Repository->new: relative dir, fake: returns a valid object');
+