# ----------------------------------------------------------------
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;
# ----------------------------------------------------------------