Alien-Build
view release on metacpan or search on metacpan
t/alienfile.t view on Meta::CPAN
use 5.008004;
use Test2::V0 -no_srand => 1;
use Test::Alien::Build;
use Alien::Build;
use Path::Tiny qw( path );
use lib 'corpus/lib';
use Capture::Tiny qw( capture_merged );
use File::Temp qw( tempdir );
subtest 'compile examples' => sub {
foreach my $alienfile (path('example')->children(qr/\.alienfile$/))
{
my $build = eval {
Alien::Build->load("$alienfile");
};
is $@, '', $alienfile->basename;
}
};
subtest 'non struct alienfile' => sub {
eval {
alienfile q{
use alienfile;
my $foo = 'bar';
@{ "${foo}::${foo}" } = ();
};
};
my $error = $@;
isnt $error, '', 'throws error';
note "error = $error";
};
subtest 'warnings alienfile' => sub {
my $warning = warning {
alienfile q{
use alienfile;
my $foo;
my $bar = "$foo";
};
};
ok $warning;
note $warning;
};
subtest 'plugin' => sub {
subtest 'basic' => sub {
my $build = alienfile q{
use alienfile;
plugin 'RogerRamjet';
};
is(
$build->meta->prop,
hash {
field ramjet => 'roger';
field foo => 22;
field bar => 'something generated';
field baz => undef;
etc;
}
);
};
subtest 'default argument' => sub {
my $build = alienfile q{
use alienfile;
plugin 'RogerRamjet' => 'starscream';
};
is(
$build->meta->prop,
hash {
field ramjet => 'roger';
field foo => 22;
field bar => 'starscream';
field baz => undef;
etc;
}
);
};
( run in 0.837 second using v1.01-cache-2.11-cpan-cdf2f3d4e48 )