5 use Test::More tests => 15;
7 use Mouse::Util::TypeConstraints qw(duck_type);
26 my($class, $method) = @_;
27 return $method eq 'b';
31 my $CanA = duck_type CanA => qw(a);
32 my $CanB = duck_type CanB => [qw(b)];
33 my $CanAB = duck_type [qw(a b)];
35 is $CanA->name, 'CanA';
36 is $CanB->name, 'CanB';
37 is $CanAB->name, '__ANON__';
39 ok $CanA->check(Foo->new);
40 ok $CanA->check(Bar->new);
41 ok!$CanA->check(Baz->new);
43 ok!$CanB->check(Foo->new);
44 ok $CanB->check(Bar->new);
45 ok $CanB->check(Baz->new);
47 ok!$CanAB->check(Foo->new);
48 ok $CanAB->check(Bar->new);
49 ok!$CanAB->check(Baz->new);
51 ok!$CanA->check(undef);