3 use Test::More tests => 9;
6 require_ok("MooseX::Emulate::Class::Accessor::Fast");
11 with 'MooseX::Emulate::Class::Accessor::Fast';
15 package MyClass::MooseChild;
21 package MyClass::ImmutableMooseChild;
24 __PACKAGE__->meta->make_immutable(allow_mutable_ancestors => 1);
28 package MyClass::TraditionalChild;
33 package MyImmutableClass;
35 with 'MooseX::Emulate::Class::Accessor::Fast';
36 __PACKAGE__->meta->make_immutable;
40 package MyImmutableClass::MooseChild;
42 extends 'MyImmutableClass';
46 package MyImmutableClass::ImmutableMooseChild;
48 extends 'MyImmutableClass';
49 __PACKAGE__->meta->make_immutable;
53 package MyImmutableClass::TraditionalChild;
54 use base qw(MyImmutableClass);
58 foreach my $class (qw/
62 MyClass::ImmutableMooseChild
63 MyClass::TraditionalChild
64 MyImmutableClass::MooseChild
65 MyImmutableClass::ImmutableMooseChild
66 MyImmutableClass::TraditionalChild
68 my $instance = $class->new(foo => 'bar');
69 is($instance->{foo}, 'bar', $class . " has CAF construction behavior");