656f8fcd27f0bebfa00252b9eda503408b5b4a2a
[gitmo/MooseX-ClassAttribute.git] / t / 07-parameterized-role.t
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
11 {
12     package Role;
13     use MooseX::Role::Parameterized;
14     use MooseX::ClassAttribute;
15     
16     parameter foo => (is => 'rw');
17
18     role {
19         my $p = shift;
20
21         class_has $p => (is => 'rw');
22     };
23
24     package Class;
25     use Moose;
26     with 'Role' => { foo => 'foo' };
27 }
28
29 ok((my $instance = Class->new), 'instance');
30
31 lives_and {
32     $instance->foo('bar');
33     is $instance->foo, 'bar';
34 } 'used class attribute from parameterized role';
35
36 done_testing;