1 BEGIN { do "./t/lib/ANFANG.pm" or die ( $@ || $! ) }
10 my $schema = DBICTest->init_schema();
11 my $rs = $schema->resultset('Artist');
13 ok !$rs->is_ordered, 'vanilla resultset is not ordered';
15 # Simple ordering with a single column
17 my $ordered = $rs->search(undef, { order_by => 'artistid' });
18 ok $ordered->is_ordered, 'Simple column ordering detected by is_ordered';
21 # Hashref order direction
23 my $ordered = $rs->search(undef, { order_by => { -desc => 'artistid' } });
24 ok $ordered->is_ordered, 'resultset with order direction is_ordered';
27 # Column ordering with literal SQL
29 my $ordered = $rs->search(undef, { order_by => \'artistid DESC' });
30 ok $ordered->is_ordered, 'resultset with literal SQL is_ordered';
33 # Multiple column ordering
35 my $ordered = $rs->search(undef, { order_by => ['artistid', 'name'] });
36 ok $ordered->is_ordered, 'ordering with multiple columns as arrayref is ordered';
39 # More complicated ordering
41 my $ordered = $rs->search(undef, {
43 { -asc => 'artistid' },
47 ok $ordered->is_ordered, 'more complicated resultset ordering is_ordered';
50 # Empty multi-column ordering arrayref
52 my $ordered = $rs->search(undef, { order_by => [] });
53 ok !$ordered->is_ordered, 'ordering with empty arrayref is not ordered';
56 # Multi-column ordering syntax with empty hashref
58 my $ordered = $rs->search(undef, { order_by => [{}] });
59 ok !$ordered->is_ordered, 'ordering with [{}] is not ordered';
62 # Remove ordering after being set
64 my $ordered = $rs->search(undef, { order_by => 'artistid' });
65 ok $ordered->is_ordered, 'resultset with ordering applied works..';
66 my $unordered = $ordered->search(undef, { order_by => undef });
67 ok !$unordered->is_ordered, '..and is not ordered with ordering removed';
70 # Search without ordering
72 my $ordered = $rs->search({ name => 'We Are Goth' }, { join => 'cds' });
73 ok !$ordered->is_ordered, 'WHERE clause but no order_by is not ordered';
76 # Other functions without ordering
79 my $joined = $rs->search(undef, { join => 'cds' });
80 ok !$joined->is_ordered, 'join but no order_by is not ordered';
83 my $grouped = $rs->search(undef, { group_by => 'rank' });
84 ok !$grouped->is_ordered, 'group_by but no order_by is not ordered';
87 my $paged = $rs->search(undef, { page=> 5 });
88 ok !$paged->is_ordered, 'paging but no order_by is not ordered';