}
}
+ok(
+ ClassWithRoleHCA->meta()->does_role('RoleHCA'),
+ 'ClassWithRoleHCA does RoleHCA'
+);
+
SharedTests::run_tests('ClassWithRoleHCA');
+ClassWithRoleHCA->meta()->make_immutable();
+
+ok(
+ ClassWithRoleHCA->meta()->does_role('RoleHCA'),
+ 'ClassWithRoleHCA (immutable) does RoleHCA'
+);
+
+
# These next tests are aimed at testing to-role application followed by
# to-class application
{
with 'RoleHCA';
}
+ok(
+ RoleWithRoleHCA->meta()->does_role('RoleHCA'),
+ 'RoleWithRoleHCA does RoleHCA'
+);
+
{
package ClassWithRoleWithRoleHCA;
}
}
+ok(
+ ClassWithRoleWithRoleHCA->meta()->does_role('RoleHCA'),
+ 'ClassWithRoleWithRoleHCA does RoleHCA'
+);
+
SharedTests::run_tests('ClassWithRoleWithRoleHCA');
+ClassWithRoleWithRoleHCA->meta()->make_immutable();
+
+ok(
+ ClassWithRoleWithRoleHCA->meta()->does_role('RoleHCA'),
+ 'ClassWithRoleWithRoleHCA (immutable) does RoleHCA'
+);
+
{
package InstanceWithRoleHCA;
apply_all_roles( $instance, 'RoleHCA' );
+ok(
+ $instance->meta()->does_role('RoleHCA'),
+ '$instance does RoleHCA'
+);
+
$instance->ObjectCount(1);
SharedTests::run_tests($instance);
+$instance->meta()->make_immutable();
+
+ok(
+ $instance->meta()->does_role('RoleHCA'),
+ '$instance (immutable) does RoleHCA'
+);
+
done_testing();