summaryrefslogtreecommitdiff
path: root/t/merge.t
diff options
context:
space:
mode:
Diffstat (limited to 't/merge.t')
-rw-r--r--t/merge.t65
1 files changed, 65 insertions, 0 deletions
diff --git a/t/merge.t b/t/merge.t
new file mode 100644
index 0000000..f082cbd
--- /dev/null
+++ b/t/merge.t
@@ -0,0 +1,65 @@
+use strict;
+use Module::CPANfile;
+use Test::More;
+use t::Utils;
+
+{
+ my $r = write_files(cpanfile => <<CPANFILE, 'META.json' => <<META);
+requires 'Plack', '0.9970';
+
+on 'test' => sub {
+ requires 'Test::More', '0.90';
+};
+
+on 'develop' => sub {
+ requires 'Catalyst::Runtime', '> 5.8000, < 5.9';
+};
+CPANFILE
+{
+ "abstract" : "A format for describing CPAN dependencies of Perl applications",
+ "author" : [
+ "Tatsuhiko Miyagawa"
+ ],
+ "dynamic_config" : 0,
+ "generated_by" : "ExtUtils::MakeMaker version 6.64, CPAN::Meta::Converter version 2.120921",
+ "meta-spec" : {
+ "url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec",
+ "version" : "2"
+ },
+ "name" : "Module-CPANfile",
+ "prereqs" : {
+ "build" : {
+ "requires" : {
+ "ExtUtils::MakeMaker" : "0"
+ }
+ },
+ "configure" : {
+ "requires" : {
+ "ExtUtils::MakeMaker" : "6.31"
+ }
+ },
+ "runtime" : {
+ "requires" : {
+ "perl" : "5.008001",
+ "Plack" : "0.9000"
+ }
+ }
+ },
+ "version" : "0.9007"
+}
+META
+
+ my $file = Module::CPANfile->load;
+ $file->merge_meta('META.json');
+
+ my $meta = CPAN::Meta->load_file('META.json');
+ is_deeply $meta->prereqs, {
+ build => { requires => { 'ExtUtils::MakeMaker' => 0 } },
+ configure => { requires => { 'ExtUtils::MakeMaker' => '6.31' } },
+ runtime => { requires => { 'perl' => '5.008001', 'Plack' => '0.9970' } },
+ develop => { requires => { 'Catalyst::Runtime' => '> 5.8000, < 5.9' } },
+ test => { requires => { 'Test::More' => '0.90' } },
+ };
+}
+
+done_testing;