add a map type
[gitmo/MooseX-Types-Structured.git] / t / 04-map.t
1 use strict;
2 use warnings;
3 use Test::More;
4
5 use MooseX::Types::Moose qw(Int Num);
6 use MooseX::Types::Structured qw(Map);
7 use Try::Tiny;
8
9 my $type = Map[ Int, Num ];
10
11 ok($type->assert_valid({ 10 => 10.5 }), "simple Int -> Num mapping");
12
13 eval { $type->assert_valid({ 10.5 => 10.5 }) };
14 like($@, qr{value 10\.5}, "non-Int causes rejection on key");
15
16 eval { $type->assert_valid({ 10 => "ten and a half" }) };
17 like("$@", qr{value ten and a half}, "non-Num value causes rejection on value");
18
19 ok($type->assert_valid({ }), "empty hashref is a valid mapping of any sort");
20
21 done_testing;
22