Release commit for 0.091008
[gitmo/Moo.git] / xt / moo-does-moose-role.t
CommitLineData
a84066c7 1use strictures 1;
2use Test::More;
3
4BEGIN {
981402b8 5 package Ker;
6
7 use Moo::Role;
8}
9
10BEGIN {
a84066c7 11 package Splat;
12
13 use Moose::Role;
14
15 requires 'monkey';
16
17 sub punch { 1 }
18
19 sub jab { 0 }
20
21 around monkey => sub { 'OW' };
22
23 has trap => (is => 'ro', default => sub { -1 });
24}
25
26BEGIN {
c100c04c 27 package Splat2;
28
29 use Mouse::Role;
30
31 requires 'monkey';
32
33 sub punch { 1 }
34
35 sub jab { 0 }
36
37 around monkey => sub { 'OW' };
38
39 has trap => (is => 'ro', default => sub { -1 });
40}
41
42BEGIN {
a84066c7 43 package Splattered;
44
45 use Moo;
46
47 sub monkey { 'WHAT' }
48
49 with 'Splat';
50
51 sub jab { 3 }
52}
53
c100c04c 54BEGIN {
55 package Splattered2;
56
57 use Moo;
58
59 sub monkey { 'WHAT' }
60
61 with 'Splat2';
62
63 sub jab { 3 }
64}
a84066c7 65
981402b8 66BEGIN {
67 package Ker::Splattered;
68
69 use Moo;
70
71 sub monkey { 'WHAT' }
72
73 with qw/ Ker Splat /;
74
75 sub jab { 3 }
76}
77
78BEGIN {
79 package Ker::Splattered2;
80
81 use Moo;
82
83 sub monkey { 'WHAT' }
84
85 with qw/ Ker Splat2 /;
86
87 sub jab { 3 }
88}
89
90
91foreach my $s (Splattered->new, Splattered2->new, Ker::Splattered->new, Ker::Splattered2->new) {
c100c04c 92 is($s->punch, 1, 'punch');
93 is($s->jab, 3, 'jab');
94 is($s->monkey, 'OW', 'monkey');
95 is($s->trap, -1, 'trap');
96}
a84066c7 97
98done_testing;