5 use Test::More tests => 6;
9 package MyCompositeRoleA;
10 use MooseX::Role::Parameterized;
12 parameter attribute => (
20 has $p->attribute => (
27 package MyCompositeRoleB;
28 use MooseX::Role::Parameterized;
30 parameter accessor => (
46 package MyDoubleConsumer;
48 with MyCompositeRoleA => { attribute => 'foo' },
49 MyCompositeRoleB => { accessor => 'bar' };
53 local $TODO = "role-role application for parameterized roles doesn't work yet";
54 ok(MyDoubleConsumer->can('foo'), 'first role in composite applied successfully');
55 ok(MyDoubleConsumer->can('bar'), 'second role in composite applied successfully');
59 package MyExtendingRole;
60 use MooseX::Role::Parameterized;
69 with 'MyCompositeRoleA', { attribute => 'bar' };
73 default => sub { $p->foo },
79 package MyExtendedConsumer;
81 with MyCompositeRoleA => { attribute => 'bar' },
82 MyExtendingRole => { foo => 23 };
86 local $TODO = "role-role application for parameterized roles doesn't work yet";
87 ok(MyExtendedConsumer->can('bar'), 'role composed through other role applied successfully');
88 is(eval { MyExtendedConsumer->new->foo }, 23, 'role composing other role applied successfully');
93 use MooseX::Role::Parameterized;
95 parameter rolename => (isa => "Str");
96 parameter roleparams => (isa => "HashRef");
101 with $p->rolename, $p->roleparams;
106 package MyProxyConsumer;
110 rolename => 'MyCompositeRoleA',
111 roleparams => { attribute => 'baz' },
113 MyCompositeRoleB => {
120 local $TODO = "role-role application for parameterized roles doesn't work yet";
121 ok(MyProxyConsumer->can('baz'), 'proxied role got applied successfully');
122 ok(MyProxyConsumer->can('qux'), 'other role besides proxied one got applied successfully');