Commit | Line | Data |
ff2ccd89 |
1 | #!/usr/bin/env perl |
2 | use strict; |
3 | use warnings; |
4 | use Test::More tests => 20; |
5 | |
6 | do { |
7 | package OtherRole; |
8 | use Moose::Role; |
9 | }; |
10 | |
11 | do { |
12 | package MyRole; |
13 | use MooseX::Role::Parameterized; |
14 | |
15 | requires 'requirement'; |
16 | excludes 'exclusion'; |
17 | |
18 | has attribute => (); |
19 | |
20 | method meth => sub {}; |
21 | before meth => sub {}; |
22 | after meth => sub {}; |
23 | around meth => sub {}; |
24 | |
25 | sub regular_method {} |
26 | |
27 | override other_meth => sub { super }; |
28 | |
29 | with 'OtherRole'; |
30 | |
31 | role { } |
32 | }; |
33 | |
34 | for my $meta (MyRole->meta, MyRole->meta->generate_role) { |
35 | ok($meta->has_attribute('attribute'), 'has'); |
36 | ok($meta->has_method('meth'), 'method'); |
37 | ok($meta->has_method('regular_method'), 'sub'); |
38 | |
39 | is($meta->has_before_method_modifiers('meth'), 1, 'before'); |
40 | is($meta->has_after_method_modifiers('meth'), 1, 'after'); |
41 | is($meta->has_around_method_modifiers('meth'), 1, 'around'); |
42 | |
43 | is($meta->has_override_method_modifier('other_meth'), 1, 'override'); |
44 | is($meta->does_role('OtherRole'), 1, 'with'); |
45 | |
46 | ok($meta->requires_method('requirement'), 'requires'); |
47 | ok($meta->excludes_role('exclusion'), 'excludes'); |
48 | } |
49 | |