X7ROOT File Manager
Current Path:
/usr/share/doc/perl-CPAN-Meta/t
usr
/
share
/
doc
/
perl-CPAN-Meta
/
t
/
📁
..
📄
00-report-prereqs.dd
(7.88 KB)
📄
00-report-prereqs.t
(5.46 KB)
📄
README-data.txt
(622 B)
📄
converter-bad.t
(2.72 KB)
📄
converter-fail.t
(1.16 KB)
📄
converter-fragments.t
(4 KB)
📄
converter.t
(10.42 KB)
📁
data-fail
📁
data-fixable
📁
data-test
📁
data-valid
📁
lib
📄
load-bad.t
(805 B)
📄
merge.t
(5.74 KB)
📄
meta-obj.t
(6.62 KB)
📄
no-index.t
(1.82 KB)
📄
optional_feature-merge.t
(3.2 KB)
📁
parse-cpan-meta
📄
prereqs-finalize.t
(2.24 KB)
📄
prereqs-merge.t
(2.37 KB)
📄
prereqs.t
(3.65 KB)
📄
repository.t
(4.39 KB)
📄
save-load.t
(3.67 KB)
📄
validator.t
(1.2 KB)
Editing: prereqs.t
use strict; use warnings; use Test::More 0.88; use CPAN::Meta::Prereqs; delete $ENV{PERL_YAML_BACKEND}; delete $ENV{PERL_JSON_BACKEND}; delete $ENV{CPAN_META_JSON_BACKEND}; delete $ENV{CPAN_META_JSON_DECODER}; my $prereq_struct = { runtime => { requires => { 'Config' => 0, 'Cwd' => 0, 'Data::Dumper' => 0, 'ExtUtils::Install' => 0, 'File::Basename' => 0, 'File::Compare' => 0, 'File::Copy' => 0, 'File::Find' => 0, 'File::Path' => 0, 'File::Spec' => 0, 'IO::File' => 0, 'perl' => '5.005_03', }, recommends => { 'Archive::Tar' => '1.00', 'ExtUtils::Install' => 0.3, 'ExtUtils::ParseXS' => 2.02, 'Pod::Text' => 0, 'YAML' => 0.35, }, }, build => { requires => { 'Test' => 0, }, x_type => { 'Config' => 1, }, }, x_phase => { requires => { 'JSON::PP' => '2.34', }, x_type => { 'POSIX' => '1.23', }, }, }; my $prereq = CPAN::Meta::Prereqs->new($prereq_struct); isa_ok($prereq, 'CPAN::Meta::Prereqs'); is_deeply($prereq->as_string_hash, $prereq_struct, "round-trip okay"); { my $req = $prereq->requirements_for(qw(runtime requires)); my @req_mod = $req->required_modules; ok( (grep { 'Cwd' eq $_ } @req_mod), "we got the runtime requirements", ); ok( (! grep { 'YAML' eq $_ } @req_mod), "...but not the runtime recommendations", ); ok( (! grep { 'Test' eq $_ } @req_mod), "...nor the build requirements", ); } { my $req = $prereq->requirements_for(qw(runtime requires)); my $rec = $prereq->requirements_for(qw(runtime recommends)); my $merged = $req->clone->add_requirements($rec); my @req_mod = $merged->required_modules; ok( (grep { 'Cwd' eq $_ } @req_mod), "we got the runtime requirements", ); ok( (grep { 'YAML' eq $_ } @req_mod), "...and the runtime recommendations", ); ok( (! grep { 'Test' eq $_ } @req_mod), "...but not the build requirements", ); } { my $req = $prereq->requirements_for(qw(runtime suggests)); my @req_mod = $req->required_modules; is(@req_mod, 0, "empty set of runtime/suggests requirements"); } { my $req = $prereq->requirements_for(qw(develop suggests)); my @req_mod = $req->required_modules; is(@req_mod, 0, "empty set of develop/suggests requirements"); } { my $new_prereq = CPAN::Meta::Prereqs->new; $new_prereq ->requirements_for(qw(runtime requires)) ->add_minimum(Foo => '1.000'); $new_prereq ->requirements_for(qw(runtime requires)) ->add_minimum(Bar => '2.976'); $new_prereq ->requirements_for(qw(test requires)) ->add_minimum(Baz => '3.1416'); $new_prereq ->requirements_for(qw(build recommends)) ->add_minimum(Bar => '3.000'); my $expect = { runtime => { requires => { Foo => '1.000', Bar => '2.976' } }, test => { requires => { Baz => '3.1416' } }, build => { recommends => { Bar => '3.000' } }, }; is_deeply( $new_prereq->as_string_hash, $expect, 'we can accumulate new requirements on a prereq object', ); my $merged_requires = { Foo => '1.000', Bar => '2.976', Baz => '3.1416', }; my $merged_all = { Foo => '1.000', Bar => '3.000', Baz => '3.1416', }; is_deeply( $new_prereq->merged_requirements( [qw/runtime test build/], [qw/requires/] )->as_string_hash, $merged_requires, "we can merge requirements for phases/types" ); is_deeply( $new_prereq->merged_requirements->as_string_hash, $merged_all, "default merging is runtime/build/test for requires/recommends" ); } done_testing; # vim: ts=2 sts=2 sw=2 et :
Upload File
Create Folder