Unknown type constraints are now interpreted as blessed($value) eq $type
[gitmo/Mouse.git] / t / 025-more-isa.t
1 #!/usr/bin/env perl
2 use strict;
3 use warnings;
4 use Test::More tests => 7;
5 use Test::Exception;
6
7 do {
8     package Class;
9     use Mouse;
10
11     has tb => (
12         is  => 'rw',
13         isa => 'Test::Builder',
14     );
15 };
16
17 can_ok(Class => 'tb');
18
19 lives_ok {
20     Class->new(tb => Test::Builder->new);
21 };
22
23 lives_ok {
24     my $class = Class->new;
25     $class->tb(Test::Builder->new);
26     isa_ok($class->tb, 'Test::Builder');
27 };
28
29 throws_ok {
30     Class->new(tb => 3);
31 } qr/Attribute \(tb\) does not pass the type constraint because: Validation failed for 'Test::Builder' failed with value 3/;
32
33 throws_ok {
34     my $class = Class->new;
35     $class->tb(3);
36 } qr/Attribute \(tb\) does not pass the type constraint because: Validation failed for 'Test::Builder' failed with value 3/;
37
38 throws_ok {
39     Class->new(tb => Class->new);
40 } qr/Attribute \(tb\) does not pass the type constraint because: Validation failed for 'Test::Builder' failed with value Class=HASH\(\w+\)/;
41