Remove confusing code introduced in 8fc4291e
[dbsrgits/DBIx-Class.git] / t / resultset / is_ordered.t
CommitLineData
c0329273 1BEGIN { do "./t/lib/ANFANG.pm" or die ( $@ || $! ) }
2
d1f542db 3use strict;
4use warnings;
5
c0329273 6
d1f542db 7use Test::More;
d1f542db 8use DBICTest;
9
10my $schema = DBICTest->init_schema();
11my $rs = $schema->resultset('Artist');
12
13ok !$rs->is_ordered, 'vanilla resultset is not ordered';
14
15# Simple ordering with a single column
16{
17 my $ordered = $rs->search(undef, { order_by => 'artistid' });
18 ok $ordered->is_ordered, 'Simple column ordering detected by is_ordered';
19}
20
21# Hashref order direction
22{
23 my $ordered = $rs->search(undef, { order_by => { -desc => 'artistid' } });
24 ok $ordered->is_ordered, 'resultset with order direction is_ordered';
25}
26
27# Column ordering with literal SQL
28{
29 my $ordered = $rs->search(undef, { order_by => \'artistid DESC' });
30 ok $ordered->is_ordered, 'resultset with literal SQL is_ordered';
31}
32
33# Multiple column ordering
34{
35 my $ordered = $rs->search(undef, { order_by => ['artistid', 'name'] });
36 ok $ordered->is_ordered, 'ordering with multiple columns as arrayref is ordered';
37}
38
39# More complicated ordering
40{
8273e845 41 my $ordered = $rs->search(undef, {
d1f542db 42 order_by => [
8273e845 43 { -asc => 'artistid' },
d1f542db 44 { -desc => 'name' },
8273e845 45 ]
d1f542db 46 });
47 ok $ordered->is_ordered, 'more complicated resultset ordering is_ordered';
48}
49
50# Empty multi-column ordering arrayref
51{
52 my $ordered = $rs->search(undef, { order_by => [] });
53 ok !$ordered->is_ordered, 'ordering with empty arrayref is not ordered';
54}
55
56# Multi-column ordering syntax with empty hashref
57{
58 my $ordered = $rs->search(undef, { order_by => [{}] });
59 ok !$ordered->is_ordered, 'ordering with [{}] is not ordered';
60}
61
62# Remove ordering after being set
63{
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';
68}
69
70# Search without ordering
71{
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';
74}
75
76# Other functions without ordering
77{
78 # Join
79 my $joined = $rs->search(undef, { join => 'cds' });
80 ok !$joined->is_ordered, 'join but no order_by is not ordered';
81
82 # Group By
83 my $grouped = $rs->search(undef, { group_by => 'rank' });
84 ok !$grouped->is_ordered, 'group_by but no order_by is not ordered';
85
86 # Paging
87 my $paged = $rs->search(undef, { page=> 5 });
88 ok !$paged->is_ordered, 'paging but no order_by is not ordered';
89}
90
91done_testing;