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&params=[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