X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=t%2F21_coerce_parameterized_types.t;h=08df149b781f827c12eb8c6bd740d896d2dde6d0;hb=d46ddd3c6468ef28ced63b72d6285cc2f13e04a7;hp=dbbd5d23286a57713de2d91410a3fcd0c4f0b17c;hpb=6cfbfdbc099ddc95835bfb05384d36c9eba7e527;p=gitmo%2FMooseX-Types.git diff --git a/t/21_coerce_parameterized_types.t b/t/21_coerce_parameterized_types.t index dbbd5d2..08df149 100644 --- a/t/21_coerce_parameterized_types.t +++ b/t/21_coerce_parameterized_types.t @@ -7,32 +7,36 @@ use Test::More tests => 2; BEGIN { package TypeLib; - use MooseX::Types -declare => [qw/MyType ArrayRefOfMyType/]; - use MooseX::Types::Moose qw/ArrayRef Str/; + use MooseX::Types -declare => [qw/MyChar MyDigit ArrayRefOfMyCharOrDigit/]; + use MooseX::Types::Moose qw/ArrayRef Str Int/; - subtype MyType, as Str, where { + subtype MyChar, as Str, where { length == 1 }; - coerce ArrayRef[MyType], from Str, via { + subtype MyDigit, as Int, where { + length == 1 + }; + + coerce ArrayRef[MyChar|MyDigit], from Str, via { [split //] }; # same thing with an explicit subtype - subtype ArrayRefOfMyType, as ArrayRef[MyType]; + subtype ArrayRefOfMyCharOrDigit, as ArrayRef[MyChar|MyDigit]; - coerce ArrayRefOfMyType, from Str, via { + coerce ArrayRefOfMyCharOrDigit, from Str, via { [split //] }; } { package AClass; use Moose; - BEGIN { TypeLib->import(qw/MyType ArrayRefOfMyType/) }; + BEGIN { TypeLib->import(qw/MyChar MyDigit ArrayRefOfMyCharOrDigit/) }; use MooseX::Types::Moose 'ArrayRef'; - has parameterized => (is => 'rw', isa => ArrayRef[MyType], coerce => 1); - has subtype => (is => 'rw', isa => ArrayRefOfMyType, coerce => 1); + has parameterized => (is => 'rw', isa => ArrayRef[MyChar|MyDigit], coerce => 1); + has subtype => (is => 'rw', isa => ArrayRefOfMyCharOrDigit, coerce => 1); } my $instance = AClass->new;