File: 003-request-retrieve-by-relationship.t

package info (click to toggle)
libponapi-client-perl 0.002012-1
  • links: PTS, VCS
  • area: main
  • in suites: bullseye
  • size: 292 kB
  • sloc: perl: 941; makefile: 2
file content (58 lines) | stat: -rw-r--r-- 1,589 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
#!perl

use strict;
use warnings;

use Test::More;
use Test::Moose;

BEGIN {
    use_ok('PONAPI::Client::Request::RetrieveByRelationship');
}

my %TEST_DATA = (
    type     => 'articles',
    id       => 2,
    rel_type => 'comments',
    page     => { size => 50 },
    filter   => { status => [ "ok" ] },
);

subtest '... testing object' => sub {

    my $req = PONAPI::Client::Request::RetrieveByRelationship->new( %TEST_DATA );

    isa_ok( $req, 'PONAPI::Client::Request::RetrieveByRelationship');
    does_ok($req, 'PONAPI::Client::Request');
    does_ok($req, 'PONAPI::Client::Request::Role::IsGET');
    does_ok($req, 'PONAPI::Client::Request::Role::HasType');
    does_ok($req, 'PONAPI::Client::Request::Role::HasId');
    does_ok($req, 'PONAPI::Client::Request::Role::HasRelationshipType');
    does_ok($req, 'PONAPI::Client::Request::Role::HasFields');
    does_ok($req, 'PONAPI::Client::Request::Role::HasFilter');
    does_ok($req, 'PONAPI::Client::Request::Role::HasInclude');
    does_ok($req, 'PONAPI::Client::Request::Role::HasPage');

    can_ok( $req, 'method' );
    can_ok( $req, 'path' );
    can_ok( $req, 'request_params' );

};

subtest '... testing request parameters' => sub {

    my $req = PONAPI::Client::Request::RetrieveByRelationship->new( %TEST_DATA );

    my $EXPECTED = +{
        method       => 'GET',
        path         => '/articles/2/comments',
        query_string => 'filter%5Bstatus%5D=ok&page%5Bsize%5D=50',
    };

    my $GOT = +{ $req->request_params };

    is_deeply( $GOT, $EXPECTED, 'checked request parametes' );

};

done_testing;