rewrite parameterized role test to not use string eval
[gitmo/MooseX-ClassAttribute.git] / t / 07-parameterized-role.t
CommitLineData
8017308b 1use strict;
2use warnings;
3use Test::More;
4
5BEGIN {
6 unless (eval { require MooseX::Role::Parameterized }) {
7 plan skip_all => 'This test needs MooseX::Role::Parameterized';
8 }
9}
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
29ok((my $instance = Class->new), 'instance');
8017308b 30
1403ec92 31lives_and {
32 $instance->foo('bar');
33 is $instance->foo, 'bar';
34} 'used class attribute from parameterized role';
8017308b 35
36done_testing;