More role tests
[gitmo/MooseX-ClassAttribute.git] / t / 08-role-composition.t
CommitLineData
f2aa2fe5 1use strict;
2use warnings;
3272340d 3
87e80a25 4use Test::More;
f2aa2fe5 5
87e80a25 6{
7 package Role;
f2aa2fe5 8
87e80a25 9 use Moose::Role;
10 use MooseX::ClassAttribute;
f2aa2fe5 11
87e80a25 12 class_has 'CA' => (
13 is => 'ro',
14 isa => 'HashRef',
15 default => sub { {} },
16 );
17}
f2aa2fe5 18
87e80a25 19{
20 package Role2;
21 use Moose::Role;
22}
f2aa2fe5 23
87e80a25 24{
25 package Bar;
26 use Moose;
f2aa2fe5 27
5a7bfdcc 28 with 'Role2', 'Role';
87e80a25 29}
f2aa2fe5 30
289b3466 31ok(
32 Bar->can('CA'),
33 'Class attributes are preserved during role composition'
34);
87e80a25 35
5a7bfdcc 36{
37 package Role3;
38 use Moose::Role;
39 with 'Role';
40}
41
42{
43 package Baz;
44 use Moose;
45
46 with 'Role3';
47}
48
49ok(
50 Baz->can('CA'),
51 'Class attributes are preserved when role is applied to another role'
52);
53
87e80a25 54done_testing();