Check if it's optional, not if it accepts undef.
[gitmo/MooseX-Types-Structured.git] / t / bug-optional.t
CommitLineData
ff0781f2 1use strict;
2use warnings;
3use Test::More;
4
5BEGIN {
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
19BEGIN {
20 MyTypes->import(':all');
21}
22
23ok(!Signature->check([ [bless {}, 'Foo'], {} ]));
24
25ok(!MyDict->check({ }));
26ok(!MyDict->check({ optional => 42 }));
27ok(!MyDict->check({ optional => 42, unknown => 23 }));
28ok(!MyDict->check({ required => 42, unknown => 23 }));
29
30ok(MyDict->check({ optional => 42, required => 23 }));
31ok(MyDict->check({ required => 23 }));
32
33done_testing;