33 with qw( Role::A Role::B );
52 for my $thing ( 'Foo', Foo->new ) {
53 my $name = ref $thing ? 'Foo object' : 'Foo class';
54 $name .= ' (immutable)' if $thing->meta->is_immutable;
57 !$thing->does('Role::A'),
58 "$name does not do Role::A"
61 !$thing->does('Role::B'),
62 "$name does not do Role::B"
66 !$thing->does( Role::A->meta ),
67 "$name does not do Role::A (passed as object)"
70 !$thing->does( Role::B->meta ),
71 "$name does not do Role::B (passed as object)"
75 !$thing->DOES('Role::A'),
76 "$name does not do Role::A (using DOES)"
79 !$thing->DOES('Role::B'),
80 "$name does not do Role::B (using DOES)"
84 for my $thing ( 'Bar', Bar->new, 'Bar::Child', Bar::Child->new ) {
85 my $name = ref $thing ? 'Bar object' : 'Bar class';
86 $name .= ' (immutable)' if $thing->meta->is_immutable;
89 $thing->does('Role::A'),
93 !$thing->does('Role::B'),
94 "$name does not do Role::B"
98 $thing->does( Role::A->meta ),
99 "$name does Role::A (passed as object)"
102 !$thing->does( Role::B->meta ),
103 "$name does not do Role::B (passed as object)"
107 $thing->DOES('Role::A'),
108 "$name does Role::A (using DOES)"
111 !$thing->DOES('Role::B'),
112 "$name does not do Role::B (using DOES)"
116 for my $thing ( 'Baz', Baz->new, 'Baz::Child', Baz::Child->new ) {
117 my $name = ref $thing ? 'Baz object' : 'Baz class';
118 $name .= ' (immutable)' if $thing->meta->is_immutable;
121 $thing->does('Role::A'),
125 $thing->does('Role::B'),
130 $thing->does( Role::A->meta ),
131 "$name does Role::A (passed as object)"
134 $thing->does( Role::B->meta ),
135 "$name does Role::B (passed as object)"
139 $thing->DOES('Role::A'),
140 "$name does Role::A (using DOES)"
143 $thing->DOES('Role::B'),
144 "$name does Role::B (using DOES)"