use strict;
use warnings;
-use Cwd qw/cwd/;
-use File::Spec::Functions qw/catdir/;
+use Cwd (); # cwd
+use File::Spec (); # catdir
-use Test::More tests => 42;
+use Test::More tests => 44;
use App::Rgit;
local $SIG{__WARN__} = sub { die @_ };
my $res = eval {
- App::Rgit->new()
+ local $ENV{GIT_DIR};
+ App::Rgit->new(
+ git => 't/bin/git',
+ );
+};
+is $@, '', "App::Rgit->new(): no root, no GIT_DIR: doesn't croak";
+isa_ok $res,'App::Rgit','App::Rgit->new(): no root, no GIT_DIR: returns object';
+
+$res = eval {
+ local $ENV{GIT_DIR} = Cwd::cwd;
+ App::Rgit->new(
+ git => 't/bin/git',
+ );
};
-is $@, '', "App::Rgit->new(): no root: doesn't croak";
-is $res, undef, 'App::Rgit->new(): no root: returns undef';
+is $@, '', "App::Rgit->new(): no root: doesn't croak";
+isa_ok $res, 'App::Rgit', 'App::Rgit->new(): no root: returns object';
$res = eval {
App::Rgit->new(
root => $0,
+ git => 't/bin/git',
+ );
+};
+like $@, qr/Invalid root directory/, 'App::Rgit->new(): wrong root: croaks';
+
+$res = eval {
+ local $ENV{GIT_EXEC_PATH};
+ local $ENV{PATH} = 't/bin';
+ App::Rgit->new(
+ root => 't',
);
};
-is $@, '', "App::Rgit->new(): wrong root: doesn't croak";
-is $res, undef, 'App::Rgit->new(): wrong root: returns undef';
+is $@, '', "App::Rgit->new(): no git, no GIT_EXEC_PATH: doesn't croak";
+isa_ok $res, 'App::Rgit',
+ 'App::Rgit->new(): no git, no GIT_EXEC_PATH: returns object';
$res = eval {
+ local $ENV{GIT_EXEC_PATH} = 't/bin/git';
App::Rgit->new(
root => 't',
);
};
-is $@, '', "App::Rgit->new(): no git: doesn't croak";
-is $res, undef, 'App::Rgit->new(): no git: returns undef';
+is $@, '', "App::Rgit->new(): no git: doesn't croak";
+isa_ok $res, 'App::Rgit', 'App::Rgit->new(): no git: returns object';
$res = eval {
App::Rgit->new(
git => $0,
);
};
-is $@, '', "App::Rgit->new(): wrong git: doesn't croak";
-is $res, undef, 'App::Rgit->new(): wrong git: returns undef';
+like $@, qr/Couldn't find a proper git executable/,
+ 'App::Rgit->new(): wrong git: croaks';
$res = eval {
App::Rgit->new(
use App::Rgit::Repository;
-my $cwd = cwd;
-my $t = catdir($cwd, 't');
+my $cwd = Cwd::cwd;
+my $t = File::Spec->catdir($cwd, 't');
chdir $t or die "chdir($t): $!";
$res = eval {