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