Add assert_valid() to Meta::TypeConstraint
[gitmo/Mouse.git] / t / 040_type_constraints / failing / 035_duck_type_handles.t
1 #!/usr/bin/perl
2 use strict;
3 use warnings;
4
5 use Test::More tests => 2;
6 use Test::Exception;
7
8 my @phonograph;
9 {
10     package Duck;
11     use Mouse;
12
13     sub walk {
14         push @phonograph, 'footsteps',
15     }
16
17     sub quack {
18         push @phonograph, 'quack';
19     }
20
21     package Swan;
22     use Mouse;
23
24     sub honk {
25         push @phonograph, 'honk';
26     }
27
28     package DucktypeTest;
29     use Mouse;
30     use Mouse::Util::TypeConstraints;
31
32     my $ducktype = duck_type 'DuckType' => qw(walk quack);
33
34     has duck => (
35         isa     => $ducktype,
36         handles => $ducktype,
37     );
38 }
39
40 my $t = DucktypeTest->new(duck => Duck->new);
41 $t->quack;
42 is_deeply([splice @phonograph], ['quack']);
43
44 $t->walk;
45 is_deeply([splice @phonograph], ['footsteps']);
46