Commit | Line | Data |
e4cb6320 |
1 | use Test::More; |
2 | use strict; |
3 | use warnings; |
4 | |
5 | BEGIN { |
6 | plan skip_all => "Package::Stash required for this test" |
7 | unless eval { require Package::Stash }; |
8 | |
9 | require MRO::Compat if $] < 5.009_005; |
10 | } |
11 | |
12 | { |
13 | package AccessorGroups::Clean; |
14 | use strict; |
15 | use warnings; |
16 | use base 'Class::Accessor::Grouped'; |
17 | |
18 | my $obj = bless {}; |
19 | for (qw/simple inherited component_class/) { |
20 | __PACKAGE__->mk_group_accessors($_ => "${_}_a"); |
21 | $obj->${\ "${_}_a"} ('blah'); |
22 | } |
23 | } |
24 | |
25 | is_deeply |
26 | [ sort keys %{ { map |
27 | { %{Package::Stash->new($_)->get_all_symbols('CODE')} } |
28 | (reverse @{mro::get_linear_isa('AccessorGroups::Clean')}) |
29 | } } ], |
30 | [ sort +( |
31 | (map { ( "$_", "_${_}_accessor" ) } qw/simple_a inherited_a component_class_a/ ), |
32 | (map { ( "get_$_", "set_$_" ) } qw/simple inherited component_class/ ), |
33 | qw/ |
34 | _mk_group_accessors |
35 | get_super_paths |
36 | make_group_accessor |
37 | make_group_ro_accessor |
38 | make_group_wo_accessor |
39 | mk_group_accessors |
40 | mk_group_ro_accessors |
41 | mk_group_wo_accessors |
42 | /, |
43 | )], |
44 | 'Expected list of methods in a freshly inheriting class'; |
45 | |
46 | done_testing; |