- added Moose::Util::apply_all_roles
[gitmo/Mouse.git] / t / 034-apply_all_roles.t
1 #!/usr/bin/env perl
2 use strict;
3 use warnings;
4 use Test::More tests => 4;
5 use Mouse::Util ':test';
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