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;
$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');
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/;
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'));
}
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 = (
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 );
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};
}
{
}
-# cleanup
-$dist->remove;