Skip tests for strict constructor on Moose
[gitmo/Mouse.git] / t / 001_mouse / 039-subtype.t
index 755c405..7142f2b 100644 (file)
@@ -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);
+