1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103
|
use 5.008004;
use Test2::V0 -no_srand => 1;
use Alien::Build::Interpolate::Default;
use lib 'corpus/lib';
subtest 'basic usage' => sub {
my $intr = Alien::Build::Interpolate::Default->new;
isa_ok $intr, 'Alien::Build::Interpolate';
if(eval { require YAML })
{
note YAML::Dump($intr);
}
else
{
require Data::Dumper;
note Data::Dumper::Dumper($intr);
}
};
subtest 'cwd' => sub {
my $intr = Alien::Build::Interpolate::Default->new;
my $val = $intr->interpolate('%{cwd}');
ok $val, "%{cwd} is okay";
note "val = $val";
};
subtest 'mkdir_deep' => sub {
local $Alien::Build::VERSION = '1.04';
my $intr = Alien::Build::Interpolate::Default->new;
my $val = $intr->interpolate('%{mkdir_deep} foo');
my $expected = $^O eq 'MSWin32' ? 'md foo' : 'mkdir -p foo';
is($val, $expected);
};
subtest 'make_path' => sub {
local $Alien::Build::VERSION = '1.05';
my $intr = Alien::Build::Interpolate::Default->new;
my $val = $intr->interpolate('%{make_path} foo');
my $expected = $^O eq 'MSWin32' ? 'md foo' : 'mkdir -p foo';
is($val, $expected);
};
subtest dynamic => sub {
my %which;
my $mock = mock 'Alien::Build::Interpolate::Default' => (
override => [
which => sub { my $command = shift; $which{$command} },
],
);
subtest 'have bison' => sub {
$which{bison} = '/usr/bin/bison';
my $intr = Alien::Build::Interpolate::Default->new;
is
[$intr->requires('%{bison}')],
[]
;
is
$intr->interpolate('-%{bison}-'),
'-bison-',
;
};
subtest 'no bison' => sub {
delete $which{bison};
my $intr = Alien::Build::Interpolate::Default->new;
is
[$intr->requires('%{bison}')],
[ 'Alien::bison' => '0.17' ]
;
};
};
done_testing;
|