Commit | Line | Data |
a84066c7 |
1 | use strictures 1; |
2 | use Test::More; |
3 | |
4 | BEGIN { |
981402b8 |
5 | package Ker; |
6 | |
7 | use Moo::Role; |
8 | } |
9 | |
10 | BEGIN { |
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 | |
26 | BEGIN { |
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 | |
42 | BEGIN { |
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 |
54 | BEGIN { |
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 |
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) { |
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 | |
98 | done_testing; |