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