use MooseX::Types -declare => [qw(
Signature
MyDict
+ MyTuple
)];
subtype Signature, as Tuple[Tuple[Object], Dict[optional => Optional[Any], required => Any]];
subtype MyDict, as Dict[optional => Optional[Any], required => Any];
+
+ subtype MyTuple, as Tuple[Object, Any, Optional[Any]];
}
BEGIN {
ok(MyDict->check({ optional => 42, required => 23 }));
ok(MyDict->check({ required => 23 }));
+ok(!MyTuple->check([]));
+ok(!MyTuple->check([bless({}, 'Foo')]));
+ok(!MyTuple->check([bless({}, 'Foo'), 'bar', 'baz', 'moo']));
+
+ok(MyTuple->check([bless({}, 'Foo'), 'bar']));
+ok(MyTuple->check([bless({}, 'Foo'), 'bar', 'baz']));
+
done_testing;