Move is_valid_class_name into XS
[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 tests => 6;
6
7 use Mouse::Util::TypeConstraints;
8
9 {
10     package Foo;
11     use Mouse;
12
13     has my_class => (
14         is  => 'rw',
15         isa => 'My::New::Class | Str',
16     );
17 }
18 my $t = Foo->meta->get_attribute('my_class')->type_constraint;
19
20 eval q{
21     package My::New::Class;
22     use Mouse;
23     package My::New::DerivedClass;
24     use Mouse;
25     extends 'My::New::Class';
26 };
27
28 isa_ok $t, 'Mouse::Meta::TypeConstraint';
29 ok $t->check(My::New::Class->new);
30 ok $t->check(My::New::DerivedClass->new);
31 ok $t->check('Foo');
32 ok!$t->check(undef);
33 ok!$t->check(bless {}, 'Foo');
34