Commit | Line | Data |
d44f0d03 |
1 | #!/usr/bin/env perl |
2 | use strict; |
3 | use warnings; |
4 | use Test::More tests => 8; |
5 | use Test::Exception; |
6 | |
7 | do { |
8 | package Shirt; |
9 | use Mouse; |
10 | use Mouse::Util::TypeConstraints 'enum'; |
11 | |
12 | enum 'Size' => qw(small medium large); |
13 | |
14 | has size => ( |
15 | is => 'rw', |
16 | isa => 'Size', |
17 | ); |
18 | }; |
19 | |
20 | ok(Shirt->new(size => 'small')); |
21 | ok(Shirt->new(size => 'medium')); |
22 | ok(Shirt->new(size => 'large')); |
23 | |
24 | throws_ok { Shirt->new(size => 'extra small') } qr/^Attribute \(size\) does not pass the type constraint because: Validation failed for 'Size' failed with value extra small/; |
25 | throws_ok { Shirt->new(size => 'Small') } qr/^Attribute \(size\) does not pass the type constraint because: Validation failed for 'Size' failed with value Small/; |
26 | throws_ok { Shirt->new(size => '') } qr/^Attribute \(size\) does not pass the type constraint because: Validation failed for 'Size' failed with value /; |
27 | throws_ok { Shirt->new(size => 'small ') } qr/^Attribute \(size\) does not pass the type constraint because: Validation failed for 'Size' failed with value small /; |
28 | throws_ok { Shirt->new(size => ' small') } qr/^Attribute \(size\) does not pass the type constraint because: Validation failed for 'Size' failed with value small/; |
29 | |