This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Update Module-Build to CPAN version 0.4200
[perl5.git] / cpan / Module-Build / t / extend.t
index db99eec..62830c2 100644 (file)
@@ -2,10 +2,9 @@
 
 use strict;
 use lib 't/lib';
-use MBTest tests => 66;
+use MBTest tests => 63;
 
-use_ok 'Module::Build';
-ensure_blib('Module::Build');
+blib_load('Module::Build');
 
 my $tmp = MBTest->tmpdir;
 
@@ -79,7 +78,7 @@ print "Hello, World!\n";
 
   $mb->add_build_element('foo');
   $mb->add_build_element('foo');
-  is_deeply $mb->build_elements, [qw(PL support pm xs pod script foo)],
+  is_deeply $mb->build_elements, [qw(PL support pm xs share_dir pod script foo)],
       'The foo element should be in build_elements only once';
 
   $mb->dispatch('build');
@@ -99,15 +98,15 @@ print "Hello, World!\n";
   use vars qw($VERSION @ISA);
   @ISA = qw(Module::Build);
   $VERSION = 0.01;
-  
+
   # Add a new property.
   ok(__PACKAGE__->add_property('foo'));
   # Add a new property with a default value.
   ok(__PACKAGE__->add_property('bar', 'hey'));
   # Add a hash property.
   ok(__PACKAGE__->add_property('hash', {}));
-  
-  
+
+
   # Catch an exception adding an existing property.
   eval { __PACKAGE__->add_property('module_name')};
   like "$@", qr/already exists/;
@@ -119,7 +118,7 @@ print "Hello, World!\n";
   use vars qw($VERSION @ISA);
   @ISA = qw(Module::Build);
   $VERSION = 0.01;
-  
+
   # Add a new property with a different default value than MBSub has.
   ok(__PACKAGE__->add_property('bar', 'yow'));
 }
@@ -131,30 +130,30 @@ print "Hello, World!\n";
   isa_ok $mb, 'MBSub';
   ok $mb->valid_property('foo');
   can_ok $mb, 'module_name';
-  
+
   # Check foo property.
   can_ok $mb, 'foo';
   ok ! $mb->foo;
   ok $mb->foo(1);
   ok $mb->foo;
-  
+
   # Check bar property.
   can_ok $mb, 'bar';
   is $mb->bar, 'hey';
   ok $mb->bar('you');
   is $mb->bar, 'you';
-  
+
   # Check hash property.
   ok $mb = MBSub->new(
                       module_name => $dist->name,
                       hash        => { foo => 'bar', bin => 'foo'}
                     );
-  
+
   can_ok $mb, 'hash';
   isa_ok $mb->hash, 'HASH';
   is $mb->hash->{foo}, 'bar';
   is $mb->hash->{bin}, 'foo';
-  
+
   # Check hash property passed via the command-line.
   {
     local @ARGV = (
@@ -168,7 +167,7 @@ print "Hello, World!\n";
   isa_ok $mb->hash, 'HASH';
   is $mb->hash->{foo}, 'bar';
   is $mb->hash->{bin}, 'foo';
-  
+
   # Make sure that a different subclass with the same named property has a
   # different default.
   ok $mb = MBSub2->new( module_name => $dist->name );
@@ -184,24 +183,29 @@ print "Hello, World!\n";
   ok my $mb = Module::Build->new(
                                  module_name => $dist->name,
                                  license => 'perl',
-                                 meta_add => {foo => 'bar'},
+                                 meta_add => {abstract => 'bar'},
                                  conflicts => {'Foo::Barxx' => 0},
                                );
-  my %data;
-  $mb->prepare_metadata( \%data );
-  is $data{foo}, 'bar';
-
-  $mb->meta_merge(foo => 'baz');
-  $mb->prepare_metadata( \%data );
-  is $data{foo}, 'baz';
-
-  $mb->meta_merge(conflicts => {'Foo::Fooxx' => 0});
-  $mb->prepare_metadata( \%data );
-  is_deeply $data{conflicts}, {'Foo::Barxx' => 0, 'Foo::Fooxx' => 0};
+  my $data = $mb->get_metadata;
+  is_deeply $data->{abstract}, 'bar';
+
+  $mb->meta_merge(abstract => 'baz');
+  $data = $mb->get_metadata;
+  is_deeply $data->{abstract}, 'baz';
+
+  $mb->meta_merge(
+    'meta-spec' => { version => 2 },
+    prereqs => {
+      test => {
+        requirements => {
+          'Foo::Fooxx' => 0,
+        }
+      }
+    }
+  );
+  $data = $mb->get_metadata;
+  is_deeply $data->{prereqs}{test}{requirements}, { 'Foo::Fooxx' => 0 };
 
-  $mb->meta_add(conflicts => {'Foo::Bazxx' => 0});
-  $mb->prepare_metadata( \%data );
-  is_deeply $data{conflicts}, {'Foo::Bazxx' => 0, 'Foo::Fooxx' => 0};
 }
 
 {
@@ -275,5 +279,3 @@ print "Hello, World!\n";
 
 }
 
-# cleanup
-$dist->remove;