Commit | Line | Data |
ff0781f2 |
1 | use strict; |
2 | use warnings; |
3 | use Test::More; |
4 | |
5 | BEGIN { |
6 | package MyTypes; |
7 | use MooseX::Types::Structured qw(Dict Tuple Optional); |
8 | use MooseX::Types::Moose qw(Object Any); |
9 | use MooseX::Types -declare => [qw( |
10 | Signature |
11 | MyDict |
12 | )]; |
13 | |
14 | subtype Signature, as Tuple[Tuple[Object], Dict[optional => Optional[Any], required => Any]]; |
15 | |
16 | subtype MyDict, as Dict[optional => Optional[Any], required => Any]; |
17 | } |
18 | |
19 | BEGIN { |
20 | MyTypes->import(':all'); |
21 | } |
22 | |
23 | ok(!Signature->check([ [bless {}, 'Foo'], {} ])); |
24 | |
25 | ok(!MyDict->check({ })); |
26 | ok(!MyDict->check({ optional => 42 })); |
27 | ok(!MyDict->check({ optional => 42, unknown => 23 })); |
28 | ok(!MyDict->check({ required => 42, unknown => 23 })); |
29 | |
30 | ok(MyDict->check({ optional => 42, required => 23 })); |
31 | ok(MyDict->check({ required => 23 })); |
32 | |
33 | done_testing; |