Commit | Line | Data |
---|---|---|
8017308b | 1 | use strict; |
2 | use warnings; | |
3272340d | 3 | |
4 | use Test::More tests => 3; | |
9f0ece1b | 5 | use Test::Exception; |
8017308b | 6 | |
3272340d | 7 | use Test::Requires { |
8 | 'MooseX::Role::Parameterized' => 0.23, # skip all if not installed | |
9 | }; | |
8017308b | 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 |