1use strict; 2use Test::More; 3use Plack::Request; 4use JSON; 5 6use_ok "JSON::RPC::Parser"; 7use_ok "JSON::RPC::Procedure"; 8 9subtest 'basic' => sub { 10 my $req = Plack::Request->new( { 11 QUERY_STRING => 'method=sum¶ms=[1,2,3]&id=1', 12 REQUEST_METHOD => "GET", 13 } ); 14 my $parser = JSON::RPC::Parser->new( 15 coder => JSON->new, 16 ); 17 18 my $procedures = $parser->construct_from_req( $req ); 19 ok $procedures, "procedures is defined"; 20 is @$procedures, 1, "should be 1 procedure"; 21 my $procedure = $procedures->[0]; 22 ok $procedure, "procedure is defined"; 23 isa_ok $procedure, "JSON::RPC::Procedure"; 24 is $procedure->id, 1, "id matches"; 25 is $procedure->method, "sum", "method matches"; 26 is_deeply $procedure->params, [ 1, 2, 3 ], "parameters match"; 27}; 28 29done_testing; 30