Shut up a warning from the next version of Moose
[gitmo/MooseX-Emulate-Class-Accessor-Fast.git] / t / construction.t
CommitLineData
144866f7 1#!perl
2use strict;
3use Test::More tests => 9;
4
5#1
6require_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';
b21ea3e5 24 __PACKAGE__->meta->make_immutable(allow_mutable_ancestors => 1);
144866f7 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
58foreach 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