1#!perl -T 2 3use warnings; 4use strict; 5use Test::More tests => 23; 6use Test::Exception; 7use_ok('Data::Page'); 8 9my $page = Data::Page->new(7, 10, 12); 10isa_ok($page, 'Data::Page'); 11 12is($page->first_page, 1, "Adjusted to first possible page"); 13 14$page = Data::Page->new(0, 10, -1); 15isa_ok($page, 'Data::Page'); 16 17is($page->first_page, 1, "Adjusted to first possible page"); 18 19throws_ok { 20 my $page = Data::Page->new(12, -1, 1); 21 } 22 qr/one entry per page/, "Can't have entries-per-page less than 1"; 23 24# The new empty constructor means we might be empty, let's check for sensible defaults 25$page = Data::Page->new; 26is($page->entries_per_page, 10); 27is($page->total_entries, 0); 28is($page->entries_on_this_page, 0); 29is($page->first_page, 1); 30is($page->last_page, 1); 31is($page->first, 0); 32is($page->last, 0); 33is($page->previous_page, undef); 34is($page->current_page, 1); 35is($page->next_page, undef); 36is($page->skipped, 0); 37my @integers = (0 .. 100); 38@integers = $page->splice(\@integers); 39my $integers = join ',', @integers; 40is($integers, ''); 41 42$page->current_page(undef); 43is($page->current_page, 1); 44 45$page->current_page(-5); 46is($page->current_page, 1); 47 48$page->current_page(5); 49is($page->current_page, 1); 50 51$page->total_entries(100); 52$page->entries_per_page(20); 53$page->current_page(2); 54is($page->first, 21); 55$page->current_page(3); 56is($page->first, 41); 57