Require Moose 2.00
[gitmo/MooseX-ClassAttribute.git] / t / 07-parameterized-role.t
CommitLineData
8017308b 1use strict;
2use warnings;
3272340d 3
cf7a55f0 4use Test::More;
dae2900e 5use Test::Fatal;
8017308b 6
73733222 7use Test::Requires {
8 'MooseX::Role::Parameterized' => '0',
9};
10
cf7a55f0 11plan skip_all =>
12 'This test will not pass without changes to MooseX::Role::Parmeterized';
8017308b 13
1403ec92 14{
8017308b 15 package Role;
cf7a55f0 16
8017308b 17 use MooseX::Role::Parameterized;
18 use MooseX::ClassAttribute;
cf7a55f0 19
20 parameter foo => ( is => 'rw' );
1403ec92 21
22 role {
23 my $p = shift;
24
cf7a55f0 25 class_has $p => ( is => 'rw' );
1403ec92 26 };
cf7a55f0 27}
8017308b 28
cf7a55f0 29{
8017308b 30 package Class;
cf7a55f0 31
8017308b 32 use Moose;
cf7a55f0 33
1403ec92 34 with 'Role' => { foo => 'foo' };
35}
36
cf7a55f0 37my $instance = Class->new();
38isa_ok( $instance, 'Class' );
8017308b 39
dae2900e 40is(
41 exception {
42 $instance->foo('bar');
43 is( $instance->foo(), 'bar' );
44 },
45 undef,
46 'used class attribute from parameterized role'
47);
8017308b 48
cf7a55f0 49done_testing();