add Test::Exception
[gitmo/MooseX-ClassAttribute.git] / t / 07-parameterized-role.t
CommitLineData
8017308b 1use strict;
2use warnings;
3use Test::More;
9f0ece1b 4use Test::Exception;
8017308b 5
6BEGIN {
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
30ok((my $instance = Class->new), 'instance');
8017308b 31
1403ec92 32lives_and {
33 $instance->foo('bar');
34 is $instance->foo, 'bar';
35} 'used class attribute from parameterized role';
8017308b 36
37done_testing;