Commit | Line | Data |
144866f7 |
1 | #!perl |
2 | use strict; |
3 | use Test::More tests => 9; |
4 | |
5 | #1 |
6 | require_ok("MooseX::Emulate::Class::Accessor::Fast"); |
7 | |
8 | { |
9 | package MyClass; |
10 | use Moose; |
11 | with 'MooseX::Emulate::Class::Accessor::Fast'; |
12 | } |
13 | |
14 | { |
15 | package MyClass::MooseChild; |
16 | use Moose; |
17 | extends 'MyClass'; |
18 | } |
19 | |
20 | { |
21 | package MyClass::ImmutableMooseChild; |
22 | use Moose; |
23 | extends 'MyClass'; |
24 | __PACKAGE__->meta->make_immutable; |
25 | } |
26 | |
27 | { |
28 | package MyClass::TraditionalChild; |
29 | use base qw(MyClass); |
30 | } |
31 | |
32 | { |
33 | package MyImmutableClass; |
34 | use Moose; |
35 | with 'MooseX::Emulate::Class::Accessor::Fast'; |
36 | __PACKAGE__->meta->make_immutable; |
37 | } |
38 | |
39 | { |
40 | package MyImmutableClass::MooseChild; |
41 | use Moose; |
42 | extends 'MyImmutableClass'; |
43 | } |
44 | |
45 | { |
46 | package MyImmutableClass::ImmutableMooseChild; |
47 | use Moose; |
48 | extends 'MyImmutableClass'; |
49 | __PACKAGE__->meta->make_immutable; |
50 | } |
51 | |
52 | { |
53 | package MyImmutableClass::TraditionalChild; |
54 | use base qw(MyImmutableClass); |
55 | } |
56 | |
57 | # 2-9 |
58 | foreach my $class (qw/ |
59 | MyClass |
60 | MyImmutableClass |
61 | MyClass::MooseChild |
62 | MyClass::ImmutableMooseChild |
63 | MyClass::TraditionalChild |
64 | MyImmutableClass::MooseChild |
65 | MyImmutableClass::ImmutableMooseChild |
66 | MyImmutableClass::TraditionalChild |
67 | /) { |
68 | my $instance = $class->new(foo => 'bar'); |
69 | is($instance->{foo}, 'bar', $class . " has CAF construction behavior"); |
70 | } |
71 | |