use strict;
use warnings;
-use Test::More tests => 86;
+use Test::More;
use Test::Exception;
{
package FooRole;
use Moose::Role;
+ our $VERSION = 23;
+
has 'bar' => ( is => 'rw', isa => 'FooClass' );
has 'baz' => ( is => 'ro' );
sub boo {'BarClass::boo'}
sub foo {'BarClass::foo'} # << the role overrides this ...
-
- __PACKAGE__->meta->make_immutable( debug => 0 );
}
{
use Moose;
extends 'BarClass';
- with 'FooRole';
+
+ ::throws_ok { with 'FooRole' => { -version => 42 } }
+ qr/FooRole version 42 required--this is only version 23/,
+ 'applying role with unsatisfied version requirement';
+
+ ::lives_ok { with 'FooRole' => { -version => 13 } }
+ 'applying role with satisfied version requirement';
sub blau {'FooClass::blau'} # << the role wraps this ...
sub goo {'FooClass::goo'} # << overrides the one from the role ...
-
- __PACKAGE__->meta->make_immutable( debug => 0 );
}
{
'... does_role requires a role name';
dies_ok {
- $foo_class_meta->apply_role();
+ $foo_class_meta->add_role();
}
'... apply_role requires a role';
dies_ok {
- $foo_class_meta->apply_role( bless( {} => 'Fail' ) );
+ $foo_class_meta->add_role( bless( {} => 'Fail' ) );
}
'... apply_role requires a role';
is( $foo->bar, $foo2, '... got the right value for bar now' );
}
+
+done_testing;