Some fixes and test improvements for roles
[gitmo/Mouse.git] / t / 402-basic-role-application.t
1 #!/usr/bin/env perl
2 use strict;
3 use warnings;
4 use Test::More tests => 5;
5 use Test::Exception;
6
7 do {
8     package Role;
9     use Mouse::Role;
10
11     has 'attr' => (
12         default => 'Role',
13     );
14
15     no Mouse::Role;
16 };
17
18 is_deeply(Role->meta->get_attribute('attr'), {default => 'Role'});
19
20 do {
21     package Class;
22     use Mouse;
23     with 'Role';
24
25     no Mouse;
26 };
27
28 ok(Class->meta->has_attribute('attr'), "role application added the attribute");
29 is(Class->meta->get_attribute('attr')->default, 'Role');
30
31 do {
32     package Role2;
33     use Mouse::Role;
34
35     has 'attr' => (
36         default => 'Role2',
37     );
38
39     no Mouse::Role;
40 };
41
42 lives_ok {
43     package Class2;
44     use Mouse;
45     with 'Role';
46     with 'Role2';
47 };
48
49 TODO: {
50     local $TODO = "Moose prefers first definition, Mouse the last";
51     is(Class2->meta->get_attribute('attr')->default, 'Role');
52 };
53