Add assert_valid() to Meta::TypeConstraint
[gitmo/Mouse.git] / t / 040_type_constraints / failing / 035_duck_type_handles.t
CommitLineData
b2b106d7 1#!/usr/bin/perl
2use strict;
3use warnings;
4
5use Test::More tests => 2;
6use Test::Exception;
7
8my @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
40my $t = DucktypeTest->new(duck => Duck->new);
41$t->quack;
42is_deeply([splice @phonograph], ['quack']);
43
44$t->walk;
45is_deeply([splice @phonograph], ['footsteps']);
46