Mouse::Util::does_role() respects $thing->does() method
[gitmo/Mouse.git] / t / 001_mouse / 052-undefined-type-in-union.t
1 #!perl
2
3 use strict;
4 use warnings;
5 use Test::More skip_all => 'suspending';
6 use Test::More;
7
8 use Mouse::Util::TypeConstraints;
9
10 {
11     package Foo;
12     use Mouse;
13
14     has my_class => (
15         is  => 'rw',
16         isa => 'My::New::Class | Str',
17     );
18 }
19 my $t = Foo->meta->get_attribute('my_class')->type_constraint;
20
21 eval q{
22     package My::New::Class;
23     use Mouse;
24     package My::New::DerivedClass;
25     use Mouse;
26     extends 'My::New::Class';
27 };
28
29 isa_ok $t, 'Mouse::Meta::TypeConstraint';
30 ok $t->check(My::New::Class->new);
31 ok $t->check(My::New::DerivedClass->new);
32 ok $t->check('Foo');
33 ok!$t->check(undef);
34 ok!$t->check(bless {}, 'Foo');
35
36 done_testing;