inhale Mouse
[gitmo/Moo.git] / xt / moo-does-moose-role.t
1 use strictures 1;
2 use Test::More;
3
4 BEGIN {
5   package Splat;
6
7   use Moose::Role;
8
9   requires 'monkey';
10
11   sub punch { 1 }
12
13   sub jab { 0 }
14
15   around monkey => sub { 'OW' };
16
17   has trap => (is => 'ro', default => sub { -1 });
18 }
19
20 BEGIN {
21   package Splat2;
22
23   use Mouse::Role;
24
25   requires 'monkey';
26
27   sub punch { 1 }
28
29   sub jab { 0 }
30
31   around monkey => sub { 'OW' };
32
33   has trap => (is => 'ro', default => sub { -1 });
34 }
35
36 BEGIN {
37   package Splattered;
38
39   use Moo;
40
41   sub monkey { 'WHAT' }
42
43   with 'Splat';
44
45   sub jab { 3 }
46 }
47
48 BEGIN {
49   package Splattered2;
50
51   use Moo;
52
53   sub monkey { 'WHAT' }
54
55   with 'Splat2';
56
57   sub jab { 3 }
58 }
59
60 foreach my $s (Splattered->new, Splattered2->new) {
61   is($s->punch, 1, 'punch');
62   is($s->jab, 3, 'jab');
63   is($s->monkey, 'OW', 'monkey');
64   is($s->trap, -1, 'trap');
65 }
66
67 done_testing;