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