X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=catagits%2FCatalyst-Runtime.git;a=blobdiff_plain;f=t%2Farg_constraints.t;h=2a005b72f1b11df1c49d6092daa8fdd87fc74a6d;hp=4c29a43bc216ef32040396cf68a007336a7dc645;hb=ca6d4ff660abd0bc8cd2e6590a5d8c76a5cae64a;hpb=8748abc507b9025f3bb4c806800e28cef79f1c0a diff --git a/t/arg_constraints.t b/t/arg_constraints.t index 4c29a43..2a005b7 100644 --- a/t/arg_constraints.t +++ b/t/arg_constraints.t @@ -66,6 +66,7 @@ BEGIN { use Moose; use MooseX::MethodAttributes; + use Types::Standard qw/slurpy/; use MyApp::Types qw/Tuple Int Str StrMatch ArrayRef UserId User Heart/; extends 'Catalyst::Controller'; @@ -82,6 +83,11 @@ BEGIN { $c->res->body("name: $user->{name}, age: $user->{age}"); } + sub stringy_enum :Local Args('Int',Int) { + my ($self, $c) = @_; + $c->res->body('enum'); + } + sub an_int :Local Args(Int) { my ($self, $c, $int) = @_; $c->res->body('an_int'); @@ -93,7 +99,7 @@ BEGIN { } sub many_ints :Local Args(ArrayRef[Int]) { - my ($self, $c, $int) = @_; + my ($self, $c, @ints) = @_; $c->res->body('many_ints'); } @@ -102,6 +108,11 @@ BEGIN { $c->res->body('tuple'); } + sub slurpy_tuple :Local Args(Tuple[Str,Int, slurpy ArrayRef[Int]]) { + my ($self, $c, $str, $int) = @_; + $c->res->body('tuple'); + } + sub match :Local Args(StrMatch[qr{\d\d-\d\d-\d\d}]) { my ($self, $c, $int) = @_; $c->res->body('match'); @@ -295,6 +306,17 @@ SKIP: { } { + my $res = request '/tuple/aaa/111/111/111'; + is $res->content, 'default'; +} + +{ + my $res = request '/slurpy_tuple/aaa/111/111/111'; + is $res->content, 'tuple'; +} + + +{ my $res = request '/many_ints/1/2/a'; is $res->content, 'default'; } @@ -365,6 +387,21 @@ SKIP: { is $res->content, 'chained_zero2', "request POST '/chain_base2/capture'"; } +{ + my $res = request '/stringy_enum/1/2'; + is $res->content, 'enum', "request '/stringy_enum/a'"; +} + +{ + my $res = request '/stringy_enum/b/2'; + is $res->content, 'default', "request '/stringy_enum/a'"; +} + +{ + my $res = request '/stringy_enum/1/a'; + is $res->content, 'default', "request '/stringy_enum/a'"; +} + =over | /chain_base/*/*/*/*/*/* | /chain_base (1)