X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=t%2Fconstraints.t;h=95c9f180dc31173a5d9d362e4dd64bf7f319656c;hb=9a491c801ca1a4e6a0235e764a0872cb5f440ac8;hp=197fdc0f8730e66a8639bdf5cd191691c1ffb174;hpb=9a920d27ffcb6fc5517678f16c0daa1b5fd5b180;p=gitmo%2FMooseX-Types-Structured.git diff --git a/t/constraints.t b/t/constraints.t index 197fdc0..95c9f18 100644 --- a/t/constraints.t +++ b/t/constraints.t @@ -10,15 +10,19 @@ BEGIN { use Moose; use Moose::Util::TypeConstraints; - use MooseX::Meta::TypeConstraint::Structured; + use MooseX::Meta::TypeConstraint::Structured::Named; + use MooseX::Meta::TypeConstraint::Structured::Positional; subtype 'MyString', as 'Str', where { $_=~m/abc/}; sub Tuple { - my @args = @{shift @_}; - return MooseX::Meta::TypeConstraint::Structured->new( + my ($args, $optional) = @_; + my @args = @$args; + my @optional = ref $optional eq 'ARRAY' ? @$optional : (); + + return MooseX::Meta::TypeConstraint::Structured::Positional->new( name => 'Tuple', parent => find_type_constraint('ArrayRef'), package_defined_in => __PACKAGE__, @@ -29,8 +33,11 @@ BEGIN { } sub Dict { - my %args = @{shift @_}; - return MooseX::Meta::TypeConstraint::Structured->new( + my ($args, $optional) = @_; + my %args = @$args; + my %optional = ref $optional eq 'HASH' ? @$optional : (); + + return MooseX::Meta::TypeConstraint::Structured::Named->new( name => 'Dict', parent => find_type_constraint('HashRef'), package_defined_in => __PACKAGE__,