Mouse::Util::does_role() respects $thing->does() method
[gitmo/Mouse.git] / t / 001_mouse / 071_tc_dualvar.t
1 #!perl -w
2 use strict;
3 use Test::More;
4 use Scalar::Util qw(dualvar);
5 {
6     package Foo;
7     use Mouse;
8     has intval => (
9         is  => 'rw',
10         isa => 'Int',
11     );
12     has numval => (
13         is  => 'rw',
14         isa => 'Num',
15     );
16 }
17
18 my $foo = Foo->new();
19
20 my $dv = dualvar(42, 'foo');
21 eval { $foo->intval($dv) };
22 like $@, qr/Validation failed for 'Int'/, 'Int for dualvar';
23
24 eval { $foo->numval($dv) };
25 like $@, qr/Validation failed for 'Num'/, 'Num for dualvar';
26
27 cmp_ok $dv, 'eq', 'foo';
28 cmp_ok $dv, '==', 42, 'keeps dualvar-ness';
29
30 done_testing;
31