use Test::Fatal;
BEGIN {
- plan skip_all => "Class::Method::Modifiers not installed"
- unless eval "use Class::Method::Modifiers; 1";
+ plan skip_all => "Class::Method::Modifiers not installed or too old"
+ unless eval "use Class::Method::Modifiers 1.05; 1";
}
BEGIN {
}
BEGIN {
+ package ExtraRole;
+
+ use Role::Tiny;
+}
+
+BEGIN {
package MyClass;
sub foo { 'class foo' }
}
BEGIN {
+ package ExtraClass;
+
+ use Role::Tiny::With;
+
+ with qw(MyRole ExtraRole);
+
+ sub foo { 'class foo' }
+}
+
+BEGIN {
package BrokenRole;
use Role::Tiny;
is(try_apply_to('MyClass'), undef, 'role applies cleanly');
is(MyClass->foo, 'role foo class foo', 'method modifier');
+is(ExtraClass->foo, 'role foo class foo', 'method modifier with composition');
ok(exception {
my $new_class = Role::Tiny->create_class_with_roles('MyClass', 'BrokenRole');