Dancer2-Plugin-Syntax-ParamKeywords

 view release on metacpan or  search on metacpan

t/param_keywords.t  view on Meta::CPAN

use strict;
use warnings;
use Test::More import => ['!pass'];
use Plack::Test;
use HTTP::Request::Common;
use Ref::Util qw<is_coderef>;

{
    package App1;
    use Dancer2;
    use Dancer2::Plugin::Syntax::ParamKeywords;

    get '/a/:foo/:bar' => sub { return "foo = " . route_param('foo') . ", bar = " . route_param( 'bar' ) };
    
    get '/b' => sub { return 'bar = ' . query_param( 'bar' ) };
    
    get '/c' => sub { return join( ', ', query_params( 'foo' ) ) };

    get '/d' => sub { 
        my $params = query_params;
        
        ::isa_ok(
            $params,
            'Hash::MultiValue',
            '...query_params',
        );

        return join( ', ', sort $params->values ) ;
    };

    post '/e' => sub {
        my $params = body_parameters;
        ::isa_ok(
            $params,
            'Hash::MultiValue',
            '..body_params',
        );

        ::is_deeply(
            [ sort $params->values ],
            ['bar', 'baz', 'blah', 'quux'],
            '...got all values for body_params',
        );

        ::is( body_param( 'foo' ), 'bar', '...got a single value' );

        ::is_deeply(
            [ body_params( 'bar' ) ],
            ['baz', 'quux'],
            '...got all values for a sing body param',
        );
    };

    get '/f/:foo/:bar' => sub { 
        my $params = route_params;
        
        ::isa_ok(
            $params,
            'Hash::MultiValue',
            '...route_params',
        );

        ::is_deeply(
            [ sort $params->values ],
            [ 'bah', 'baz' ],
            '...got all values for route_params',



( run in 0.529 second using v1.01-cache-2.11-cpan-63c85eba8c4 )