Commit | Line | Data |
296fbb69 |
1 | use Test::More tests => 14; |
2 | |
3 | BEGIN { |
4 | package Local::Role1; |
5 | use Role::Tiny; |
6 | } |
7 | |
8 | BEGIN { |
9 | package Local::Role2; |
10 | use Role::Tiny; |
11 | } |
12 | |
13 | BEGIN { |
14 | package Local::Class1; |
15 | use Role::Tiny::With; |
16 | with qw( |
17 | Local::Role1 |
18 | Local::Role2 |
19 | ); |
20 | } |
21 | |
22 | BEGIN { |
23 | package Local::Class2; |
24 | use Role::Tiny::With; |
25 | with qw( Local::Role1 ); |
26 | with qw( Local::Role2 ); |
27 | } |
28 | |
29 | BEGIN { |
30 | package Local::Class3; |
31 | use Role::Tiny::With; |
32 | with qw( Local::Role1 ); |
33 | with qw( Local::Role2 ); |
34 | sub DOES { |
35 | my ($proto, $role) = @_; |
36 | return 1 if $role eq 'Local::Role3'; |
37 | return $proto->Role::Tiny::does_role($role); |
38 | } |
39 | } |
40 | |
41 | for my $c (1 .. 3) { |
42 | my $class = "Local::Class$c"; |
43 | for my $r (1 .. 2) { |
44 | my $role = "Local::Role$r"; |
45 | ok($class->does($role), "$class\->does($role)"); |
46 | ok($class->DOES($role), "$class\->DOES($role)"); |
47 | } |
48 | } |
49 | |
50 | { |
51 | my $class = "Local::Class3"; |
52 | my $role = "Local::Role3"; |
53 | ok( ! $class->does($role), "$class\->does($role)"); |
54 | ok( $class->DOES($role), "$class\->DOES($role)"); |
55 | } |