Commit | Line | Data |
2e92bb89 |
1 | #!/usr/bin/env perl |
2 | use strict; |
3 | use warnings; |
4 | use Test::More tests => 4; |
eab81545 |
5 | use Test::Exception; |
2e92bb89 |
6 | |
7 | { |
8 | package FooRole; |
9 | use Mouse::Role; |
10 | sub foo { 'ok1' } |
11 | } |
12 | |
13 | { |
14 | package BarRole; |
15 | use Mouse::Role; |
16 | sub bar { 'ok2' } |
17 | } |
18 | |
19 | { |
20 | package Baz; |
21 | use Mouse; |
22 | no Mouse; |
23 | } |
24 | |
25 | throws_ok { Mouse::Util::apply_all_roles('Baz', 'BarRole', 'FooRole') } qr{Mouse::Util only supports 'apply_all_roles' on individual roles at a time}; |
26 | |
27 | Mouse::Util::apply_all_roles('Baz', 'BarRole'); |
28 | Mouse::Util::apply_all_roles('Baz', 'FooRole'); |
29 | |
30 | my $baz = Baz->new; |
31 | is $baz->foo, 'ok1'; |
32 | is $baz->bar, 'ok2'; |
33 | is join(",", sort $baz->meta->get_method_list), 'bar,foo'; |
34 | |