Make sure wrapping twice works
[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
e842cd1d 173#-----------------------------------------------------------------------------
174
175## name Pull in a method from a role. Could go either way here.
176## failures 1
177## cut
178
179package Parent;
180use Moose;
181
182sub foo {}
183
184package Role;
185use Moose::Role;
186
187sub foo {}
188
189package Child;
190use Moose;
191extends 'Parent';
192with 'Role';
193
194#-----------------------------------------------------------------------------
195
196## name Grandparent
197## failures 1
198## cut
199
200package Grandparent;
201use Moose;
202
203sub foo {}
204
205package Parent;
206use Moose;
207extends 'Grandparent';
208
209sub bar {}
210
211package Child;
212use Moose;
213extends 'Parent';
214
215sub foo {}
216
217#-----------------------------------------------------------------------------
218
219## name Grandparent with modifiers
220## failures 0
221## cut
222
223package Grandparent;
224use Moose;
225
226sub foo {}
227
228package Parent;
229use Moose;
230extends 'Grandparent';
231
232before foo => sub {};
233
234package Child;
235use Moose;
236extends 'Parent';
237
238after foo => sub {};
239
240#-----------------------------------------------------------------------------
241
242## name Wrapping an implicit override
243## failures 1
244## cut
245
246package Parent;
247use Moose;
248
249sub foo {}
250
251package Child;
252use Moose;
253extends 'Parent';
254
255before foo => sub {};
256sub foo {}
c07f8721 257
258#-----------------------------------------------------------------------------
259
de63df59 260## name Wrapping an implicit override twice
261## failures 1
262## cut
263
264package Parent;
265use Moose;
266
267sub foo {}
268
269package Child;
270use Moose;
271extends 'Parent';
272
273before foo => sub {};
274before foo => sub {};
275sub foo {}
276
277#-----------------------------------------------------------------------------
278
c07f8721 279## name Imported functions
280## failures 0
281## cut
282
283package Parent;
284use Moose;
285use List::Util 'reduce';
286
287package Child;
288use Moose;
289extends 'Parent';
290use List::Util 'reduce';
291