Commit | Line | Data |
f5aab26e |
1 | #!/usr/bin/perl |
2 | |
3 | use strict; |
4 | use warnings; |
5 | use Test::More; |
6 | |
7 | use SQL::Abstract; |
8 | |
5aad8cf3 |
9 | use SQL::Abstract::Test import => ['is_same_sql_bind']; |
f5aab26e |
10 | my @cases = |
11 | ( |
12 | { |
13 | given => \'colA DESC', |
14 | expects => ' ORDER BY colA DESC', |
15 | expects_quoted => ' ORDER BY colA DESC', |
16 | }, |
17 | { |
18 | given => 'colA', |
19 | expects => ' ORDER BY colA', |
20 | expects_quoted => ' ORDER BY `colA`', |
21 | }, |
71519cf6 |
22 | { # it may look odd, but this is the desired behaviour (mst) |
23 | given => 'colA DESC', |
24 | expects => ' ORDER BY colA DESC', |
25 | expects_quoted => ' ORDER BY `colA DESC`', |
26 | }, |
f5aab26e |
27 | { |
28 | given => [qw/colA colB/], |
29 | expects => ' ORDER BY colA, colB', |
30 | expects_quoted => ' ORDER BY `colA`, `colB`', |
31 | }, |
71519cf6 |
32 | { # it may look odd, but this is the desired behaviour (mst) |
33 | given => ['colA ASC', 'colB DESC'], |
34 | expects => ' ORDER BY colA ASC, colB DESC', |
35 | expects_quoted => ' ORDER BY `colA ASC`, `colB DESC`', |
36 | }, |
f5aab26e |
37 | { |
38 | given => {-asc => 'colA'}, |
39 | expects => ' ORDER BY colA ASC', |
40 | expects_quoted => ' ORDER BY `colA` ASC', |
41 | }, |
42 | { |
43 | given => {-desc => 'colB'}, |
44 | expects => ' ORDER BY colB DESC', |
45 | expects_quoted => ' ORDER BY `colB` DESC', |
46 | }, |
47 | { |
48 | given => [{-asc => 'colA'}, {-desc => 'colB'}], |
49 | expects => ' ORDER BY colA ASC, colB DESC', |
50 | expects_quoted => ' ORDER BY `colA` ASC, `colB` DESC', |
51 | }, |
1cfa1db3 |
52 | { |
53 | given => ['colA', {-desc => 'colB'}], |
54 | expects => ' ORDER BY colA, colB DESC', |
55 | expects_quoted => ' ORDER BY `colA`, `colB` DESC', |
56 | }, |
b6475fb1 |
57 | { |
58 | given => undef, |
59 | expects => '', |
60 | expects_quoted => '', |
61 | }, |
f5aab26e |
62 | ); |
63 | |
f5aab26e |
64 | |
65 | plan tests => (scalar(@cases) * 2); |
66 | |
6dcf723c |
67 | my $sql = SQL::Abstract->new; |
68 | my $sqlq = SQL::Abstract->new({quote_char => '`'}); |
69 | |
f5aab26e |
70 | for my $case( @cases){ |
71 | is($sql->_order_by($case->{given}), $case->{expects}); |
72 | is($sqlq->_order_by($case->{given}), $case->{expects_quoted}); |
73 | } |