Commit | Line | Data |
8017308b |
1 | use strict; |
2 | use warnings; |
3 | use Test::More; |
4 | |
5 | BEGIN { |
6 | unless (eval { require MooseX::Role::Parameterized }) { |
7 | plan skip_all => 'This test needs MooseX::Role::Parameterized'; |
8 | } |
9 | } |
10 | |
1403ec92 |
11 | { |
8017308b |
12 | package Role; |
13 | use MooseX::Role::Parameterized; |
14 | use MooseX::ClassAttribute; |
1403ec92 |
15 | |
16 | parameter foo => (is => 'rw'); |
17 | |
18 | role { |
19 | my $p = shift; |
20 | |
21 | class_has $p => (is => 'rw'); |
22 | }; |
8017308b |
23 | |
24 | package Class; |
25 | use Moose; |
1403ec92 |
26 | with 'Role' => { foo => 'foo' }; |
27 | } |
28 | |
29 | ok((my $instance = Class->new), 'instance'); |
8017308b |
30 | |
1403ec92 |
31 | lives_and { |
32 | $instance->foo('bar'); |
33 | is $instance->foo, 'bar'; |
34 | } 'used class attribute from parameterized role'; |
8017308b |
35 | |
36 | done_testing; |