Commit | Line | Data |
e5125d21 |
1 | #!/usr/bin/env perl |
2 | use strict; |
3 | use warnings; |
a28e50e4 |
4 | use Test::More; |
e5125d21 |
5 | |
6 | do { |
7 | package Role::Foo; |
8 | use Moose::Role; |
9 | |
10 | sub foo { } |
11 | |
12 | |
13 | package Consumer::Basic; |
14 | use Moose; |
15 | |
16 | with 'Role::Foo'; |
17 | |
18 | package Consumer::Excludes; |
19 | use Moose; |
20 | |
c8b8d92f |
21 | with 'Role::Foo' => { -excludes => 'foo' }; |
e5125d21 |
22 | |
23 | package Consumer::Aliases; |
24 | use Moose; |
25 | |
c8b8d92f |
26 | with 'Role::Foo' => { -alias => { 'foo' => 'role_foo' } }; |
e5125d21 |
27 | |
28 | package Consumer::Overrides; |
29 | use Moose; |
30 | |
31 | with 'Role::Foo'; |
32 | |
33 | sub foo { } |
34 | }; |
35 | |
639f9a1a |
36 | my @basic = Consumer::Basic->meta->role_applications; |
37 | my @excludes = Consumer::Excludes->meta->role_applications; |
38 | my @aliases = Consumer::Aliases->meta->role_applications; |
39 | my @overrides = Consumer::Overrides->meta->role_applications; |
e5125d21 |
40 | |
41 | is(@basic, 1); |
42 | is(@excludes, 1); |
43 | is(@aliases, 1); |
44 | is(@overrides, 1); |
45 | |
46 | my $basic = $basic[0]; |
47 | my $excludes = $excludes[0]; |
48 | my $aliases = $aliases[0]; |
49 | my $overrides = $overrides[0]; |
50 | |
51 | isa_ok($basic, 'Moose::Meta::Role::Application::ToClass'); |
52 | isa_ok($excludes, 'Moose::Meta::Role::Application::ToClass'); |
53 | isa_ok($aliases, 'Moose::Meta::Role::Application::ToClass'); |
54 | isa_ok($overrides, 'Moose::Meta::Role::Application::ToClass'); |
55 | |
56 | is($basic->role, Role::Foo->meta); |
57 | is($excludes->role, Role::Foo->meta); |
58 | is($aliases->role, Role::Foo->meta); |
59 | is($overrides->role, Role::Foo->meta); |
60 | |
61 | is($basic->class, Consumer::Basic->meta); |
62 | is($excludes->class, Consumer::Excludes->meta); |
63 | is($aliases->class, Consumer::Aliases->meta); |
64 | is($overrides->class, Consumer::Overrides->meta); |
65 | |
66 | is_deeply($basic->get_method_aliases, {}); |
67 | is_deeply($excludes->get_method_aliases, {}); |
68 | is_deeply($aliases->get_method_aliases, { foo => 'role_foo' }); |
69 | is_deeply($overrides->get_method_aliases, {}); |
70 | |
71 | is_deeply($basic->get_method_exclusions, []); |
72 | is_deeply($excludes->get_method_exclusions, ['foo']); |
73 | is_deeply($aliases->get_method_exclusions, []); |
74 | is_deeply($overrides->get_method_exclusions, []); |
75 | |
a28e50e4 |
76 | done_testing; |