X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=gitmo%2FMouse.git;a=blobdiff_plain;f=t%2F001_mouse%2F039-subtype.t;h=7142f2b697e7107e129bce4e721678f1a32e0406;hp=755c40514101104e497176b18e63c72962797ba6;hb=7fc1f782a03cad730507528abb9707a107b8eba8;hpb=920139b3efca66d2caeeef306c97fa0da62c6b73 diff --git a/t/001_mouse/039-subtype.t b/t/001_mouse/039-subtype.t index 755c405..7142f2b 100644 --- a/t/001_mouse/039-subtype.t +++ b/t/001_mouse/039-subtype.t @@ -1,7 +1,7 @@ #!/usr/bin/env perl use strict; use warnings; -use Test::More tests => 7; +use Test::More tests => 14; use Test::Exception; use Mouse::Util::TypeConstraints; @@ -16,6 +16,10 @@ do { => where { length $_ } => message { "The string is empty!" }; + subtype 'MyClass' + => as 'Object' + => where { $_->isa(__PACKAGE__) }; + has name => ( is => 'ro', isa => 'NonemptyStr', @@ -35,3 +39,20 @@ ok $st->check('Foo'); ok!$st->check(undef); ok!$st->check(''); +lives_and{ + my $tc = find_type_constraint('MyClass'); + ok $tc->check(My::Class->new()); + ok!$tc->check('My::Class'); + ok!$tc->check([]); + ok!$tc->check(undef); +}; + +package Foo; +use Mouse::Util::TypeConstraints; + +$st = subtype as 'Int', where{ $_ > 0 }; + +::ok $st->is_a_type_of('Int'); +::ok $st->check(10); +::ok!$st->check(0); +