Commit | Line | Data |
c0329273 |
1 | BEGIN { do "./t/lib/ANFANG.pm" or die ( $@ || $! ) } |
2 | |
db326a59 |
3 | use strict; |
4 | use warnings; |
5 | |
6 | use Test::More; |
db326a59 |
7 | use DBICTest; |
8 | |
9 | plan tests => 7; |
10 | |
11 | my $schema = DBICTest->init_schema(); |
12 | |
db326a59 |
13 | # add 2 extra artists |
14 | $schema->populate ('Artist', [ |
15 | [qw/name/], |
16 | [qw/ar_1/], |
17 | [qw/ar_2/], |
18 | ]); |
19 | |
20 | # add 3 extra cds to every artist |
21 | for my $ar ($schema->resultset ('Artist')->all) { |
22 | for my $cdnum (1 .. 3) { |
23 | $ar->create_related ('cds', { |
24 | title => "bogon $cdnum", |
25 | year => 2000 + $cdnum, |
26 | }); |
27 | } |
28 | } |
29 | |
30 | my $cds = $schema->resultset ('CD')->search ({}, { group_by => 'artist' } ); |
31 | is ($cds->count, 5, 'Resultset collapses to 5 groups'); |
32 | |
33 | my ($pg1, $pg2, $pg3) = map { $cds->search_rs ({}, {rows => 2, page => $_}) } (1..3); |
34 | |
35 | for ($pg1, $pg2, $pg3) { |
36 | is ($_->pager->total_entries, 5, 'Total count via pager correct'); |
37 | } |
38 | |
39 | is ($pg1->count, 2, 'First page has 2 groups'); |
40 | is ($pg2->count, 2, 'Second page has 2 groups'); |
41 | is ($pg3->count, 1, 'Third page has one group remaining'); |