9 use Moose::Util qw( apply_all_roles );
15 use MooseX::ClassAttribute;
17 while ( my ( $name, $def ) = each %SharedTests::Attrs ) {
18 class_has $name => %{$def};
23 package ClassWithRoleHCA;
38 $self->ObjectCount( $self->ObjectCount() + 1 );
44 push @{ $_[0]->TriggerRecord() }, [@_];
48 SharedTests::run_tests('ClassWithRoleHCA');
50 # These next tests are aimed at testing to-role application followed by
51 # to-class application
53 package RoleWithRoleHCA;
56 use MooseX::ClassAttribute;
62 package ClassWithRoleWithRoleHCA;
66 with 'RoleWithRoleHCA';
77 $self->ObjectCount( $self->ObjectCount() + 1 );
83 push @{ $_[0]->TriggerRecord() }, [@_];
87 SharedTests::run_tests('ClassWithRoleWithRoleHCA');
90 package InstanceWithRoleHCA;
103 push @{ $_[0]->TriggerRecord() }, [@_];
107 my $instance = InstanceWithRoleHCA->new();
109 apply_all_roles( $instance, 'RoleHCA' );
111 $instance->ObjectCount(1);
113 SharedTests::run_tests($instance);