The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
# ----------------------------------------------------------------
    use strict;
    use Test::More;
    use utf8;
# ----------------------------------------------------------------
{
    my $key = $ENV{DOKOIKU_API_KEY} if exists $ENV{DOKOIKU_API_KEY};
    plan skip_all => 'set DOKOIKU_API_KEY env to test this' unless $key;

    eval { require Data::Page; } unless defined $Data::Page::VERSION;
    plan skip_all => 'Data::Page is not loaded.' unless defined $Data::Page::VERSION;

    plan tests => 53;
    use_ok('WebService::Recruit::Dokoiku');
    &test_main( $key,  5, 4 );
    &test_main( $key, 10, 3 );
    &test_main( $key, 15, 2 );
    &test_main( $key, 20, 1 );
}
# ----------------------------------------------------------------
sub test_main {
    my $key  = shift;
    my $size = shift;
    my $page = shift;

    my $doko = WebService::Recruit::Dokoiku->new();
    $doko->key( $key );
    $doko->pagesize( $size );

    my $param = {
        keyword     =>  'ATM',
        lat_jgd     =>  '35.6686',
        lon_jgd     =>  '139.7593',
        pagenum     =>  $page,
        radius      =>  1000,
    };
    my $res = $doko->searchPOI( %$param );
    ok( ref $res, "searchPOI" );

    my $pager = $res->page;
    ok( ref $pager, "page" );

    my $disp = $res->page_query( $page, $size );

    my $total = $pager->total_entries();
    ok( $total, "$disp total" );

    my $prev  = $page - 1 || undef;
    my $first = ($page-1) * $size + 1;
    my $last  = $page * $size;
    $last = $total if ( $last > $total );

    is( $pager->current_page,     $page,  "$disp current_page" );
    is( $pager->entries_per_page, $size,  "$disp entries_per_page" );
    is( $pager->first_page,       1,      "$disp first_page" );
    is( $pager->first,            $first, "$disp first" );
    is( $pager->last,             $last,  "$disp last" );
    is( $pager->previous_page,    $prev,  "$disp previous_page" );

    my $hash = $res->page_param( $pager->next_page );
    is( $hash->{pagenum},  $page+1, "$disp page_param pagenum" );
    is( $hash->{pagesize}, $size,   "$disp page_param pagesize" );

    my $query = $res->page_query( $pager->first_page );
    like( $query, qr/ pagenum=1 /x,      "$disp page_query pagenum" );
    like( $query, qr/ pagesize=$size /x, "$disp page_query pagesize" );
}
# ----------------------------------------------------------------
;1;
# ----------------------------------------------------------------