Release commit for 0.091008
[gitmo/Moo.git] / xt / moo-does-moose-role.t
1 use strictures 1;
2 use Test::More;
3
4 BEGIN {
5   package Ker;
6
7   use Moo::Role;
8 }
9
10 BEGIN {
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
26 BEGIN {
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
42 BEGIN {
43   package Splattered;
44
45   use Moo;
46
47   sub monkey { 'WHAT' }
48
49   with 'Splat';
50
51   sub jab { 3 }
52 }
53
54 BEGIN {
55   package Splattered2;
56
57   use Moo;
58
59   sub monkey { 'WHAT' }
60
61   with 'Splat2';
62
63   sub jab { 3 }
64 }
65
66 BEGIN {
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
78 BEGIN {
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
91 foreach my $s (Splattered->new, Splattered2->new, Ker::Splattered->new, Ker::Splattered2->new) {
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 }
97
98 done_testing;