6 use Test::More tests => 10;
13 ::use_ok("Moose::Util::TypeConstraints");
19 => message { "This number ($_) is not a positive integer!" };
21 subtype 'NaturalLessThanTen'
24 => message { "This number ($_) is not less than ten!" };
28 isa => 'NaturalLessThanTen',
36 lives_ok { my $goat = Animal->new(leg_count => 4) } '... no errors thrown, value is good';
37 lives_ok { my $spider = Animal->new(leg_count => 8) } '... no errors thrown, value is good';
39 throws_ok { my $fern = Animal->new(leg_count => 0) }
40 qr/This number \(0\) is not less than ten!/,
41 "gave custom supertype error message on new";
43 throws_ok { my $centipede = Animal->new(leg_count => 30) }
44 qr/This number \(30\) is not less than ten!/,
45 "gave custom subtype error message on new";
48 lives_ok { $chimera = Animal->new(leg_count => 4) } '... no errors thrown, value is good';
50 # first we remove the lion's legs..
51 throws_ok { $chimera->leg_count(0) }
52 qr/This number \(0\) is not less than ten!/,
53 "gave custom supertype error message on set_value";
55 # mix in a few octopodes
56 throws_ok { $chimera->leg_count(16) }
57 qr/This number \(16\) is not less than ten!/,
58 "gave custom subtype error message on set_value";
62 lives_ok { my $gimp = Animal->new() } '... no errors thrown, value is good';
63 throws_ok { $gimp->leg_count }
64 qr/This number \(0\) is not less than ten!/,
65 "gave custom supertype error message on set_value";