RequireMethodModifiers policy
[gitmo/Perl-Critic-Dynamic-Moose.git] / t / DynamicMoose / RequireMethodModifiers.run
CommitLineData
fe411924 1## name No superclass
2## failures 0
3## cut
4
5package Class;
6use Moose;
7
8sub foo {}
9sub bar {}
10
11#-----------------------------------------------------------------------------
12
13## name No overriding methods
14## failures 0
15## cut
16
17package Parent;
18
19sub parent {}
20
21package Child;
22use Moose;
23extends 'Parent';
24
25sub child {}
26
27#-----------------------------------------------------------------------------
28
29## name Implicitly overrides a method
30## failures 1
31## cut
32
33package Parent;
34
35sub parent {}
36
37package Child;
38use Moose;
39extends 'Parent';
40
41sub parent {}
42
43#-----------------------------------------------------------------------------
44
45## name Weirdly dispatching methods
46## failures 0
47## cut
48
49package Parent;
50use Moose;
51
52sub BUILD {}
53sub DEMOLISH {}
54
55package Child;
56use Moose;
57extends 'Parent';
58
59sub BUILD {}
60sub DEMOLISH {}
61
62#-----------------------------------------------------------------------------
63
64## name Make immutable
65## failures 0
66## cut
67
68package Parent;
69use Moose;
70
71__PACKAGE__->meta->make_immutable;
72
73package Child;
74use Moose;
75extends 'Parent';
76
77__PACKAGE__->meta->make_immutable;
78
79#-----------------------------------------------------------------------------
80
81## name Many modifiers
82## failures 0
83## cut
84
85package Parent;
86use Moose;
87
88sub foo {}
89
90sub ai { inner() }
91
92sub os {}
93
94package Child;
95use Moose;
96extends 'Parent';
97
98before foo => sub {};
99after foo => sub {};
100around foo => sub {};
101
102augment ai => sub {};
103
104override os => sub { super };
105
106#-----------------------------------------------------------------------------
107
108## name Pull in a method from a role. Could go either way here.
109## failures 1
110## cut
111
112package Parent;
113use Moose;
114
115sub foo {}
116
117package Role;
118use Moose::Role;
119
120sub foo {}
121
122package Child;
123use Moose;
124extends 'Parent';
125with 'Role';
126
127#-----------------------------------------------------------------------------
128
129## name Grandparent
130## failures 1
131## cut
132
133package Grandparent;
134use Moose;
135
136sub foo {}
137
138package Parent;
139use Moose;
140extends 'Grandparent';
141
142sub bar {}
143
144package Child;
145use Moose;
146extends 'Parent';
147
148sub foo {}
149
150#-----------------------------------------------------------------------------
151
152## name Grandparent with modifiers
153## failures 0
154## cut
155
156package Grandparent;
157use Moose;
158
159sub foo {}
160
161package Parent;
162use Moose;
163extends 'Grandparent';
164
165before foo => sub {};
166
167package Child;
168use Moose;
169extends 'Parent';
170
171after foo => sub {};
172