PAR-Dist
view release on metacpan or search on metacpan
t/03merge_meta.t view on Meta::CPAN
exit();
}
}
ok (eval { require PAR::Dist; 1 });
chdir('t') if -d 't';
my @dist = (
'data/dist1.par',
'data/dist2.par',
);
my @tmp = map {my $f = $_; $f =~ s/^data\///; $f} @dist;
require File::Copy;
for (0..$#dist) {
ok(-f $dist[$_]);
ok(File::Copy::copy($dist[$_], $tmp[$_]));
}
sub cleanup {
unlink($_) for @tmp;
}
$SIG{INT} = \&cleanup;
$SIG{TERM} = \&cleanup;
END { cleanup(); }
my %provides_expect = (
"Math::Symbolic::Custom::Transformation" => {
file => "lib/Math/Symbolic/Custom/Transformation.pm",
version => "2.01",
},
"Math::Symbolic::Custom::Transformation::Group" => {
file => "lib/Math/Symbolic/Custom/Transformation/Group.pm",
version => "1.25",
},
"Test::Kit" => {
file => "lib/Test/Kit.pm",
version => "0.02",
},
"Test::Kit::Features" => {
file => "lib/Test/Kit/Features.pm",
version => "0.02",
},
"Test::Kit::Result" => {
file => "lib/Test/Kit/Features.pm",
},
);
my %requires_expect = (
"Math::Symbolic" => '0.507',
"Math::Symbolic::Custom::Pattern" => '1.20',
"base" => '2.11',
"namespace::clean" => '0.08',
"Test::More" => '0',
);
my %build_requires_expect = (
"Test::More" => '0.1',
"Test::Differences" => undef,
);
my %recommends_expect = (
"Test::Pod" => '1.0',
"Test::Pod::Coverage" => '1.0',
);
PAR::Dist::merge_par(@tmp);
ok(1); # got to this point
my ($y_func) = PAR::Dist::_get_yaml_functions();
my $meta = PAR::Dist::get_meta($tmp[0]);
ok(defined($meta));
my $result = $y_func->{Load}->( $meta );
ok(defined $result);
$result = $result->[0] if ref($result) eq 'ARRAY';
my $provides = $result->{provides};
ok(ref($provides) eq 'HASH');
foreach my $module (keys %provides_expect) {
ok(ref($provides->{$module}) eq 'HASH');
my $modhash = $provides->{$module};
my $exphash = $provides_expect{$module};
ok($exphash->{file} eq $modhash->{file});
if (exists $exphash->{version}) {
ok($exphash->{version} eq $modhash->{version});
}
else {
ok(!exists($modhash->{version}));
}
}
is_deeply($result->{requires}, \%requires_expect, "requires merged as expected");
is_deeply($result->{build_requires}, \%build_requires_expect, "build_requires merged as expected");
is_deeply($result->{configure_requires}, undef, "configure_requires merged as expected");
is_deeply($result->{recommends}, \%recommends_expect, "recommends merged as expected");
__END__
( run in 0.630 second using v1.01-cache-2.11-cpan-ceb78f64989 )