4 use Test::More tests => 19;
10 use Mouse::Util::TypeConstraints 'enum';
12 enum 'Size' => qw(small medium large);
21 use Mouse::Util::TypeConstraints 'enum';
25 isa => enum ['small', 'medium', 'large'],
29 for my $class ('Shirt', 'Shirt::Anon') {
30 ok($class->new(size => 'small'));
31 ok($class->new(size => 'medium'));
32 ok($class->new(size => 'large'));
34 throws_ok { $class->new(size => 'extra small') } qr/^Attribute \(size\) does not pass the type constraint because: Validation failed for '\S+' with value extra small/;
35 throws_ok { $class->new(size => 'Small') } qr/^Attribute \(size\) does not pass the type constraint because: Validation failed for '\S+' with value Small/;
36 throws_ok { $class->new(size => '') } qr/^Attribute \(size\) does not pass the type constraint because: Validation failed for '\S+' with value /;
37 throws_ok { $class->new(size => 'small ') } qr/^Attribute \(size\) does not pass the type constraint because: Validation failed for '\S+' with value small /;
38 throws_ok { $class->new(size => ' small') } qr/^Attribute \(size\) does not pass the type constraint because: Validation failed for '\S+' with value small/;
41 use Mouse::Util::TypeConstraints qw(enum);
43 my $t = enum 'Foo', [qw(foo bar)];
45 ok $t->check('foo'), 'enum $name, $array_ref';