Commit | Line | Data |
a0185af2 |
1 | use strict; |
2 | use warnings; |
3 | |
73382d73 |
4 | use Test::More tests => 14; |
a0185af2 |
5 | |
6 | use_ok('SQL::Abstract') or BAIL_OUT( "$@" ); |
7 | |
8 | is SQL::Abstract->generate( [ -name => qw/me id/]), "me.id", |
9 | "Simple name generator"; |
10 | |
11 | is SQL::Abstract->generate( |
12 | [ -list => |
13 | [ -name => qw/me id/], |
14 | [ -name => qw/me foo bar/], |
15 | [ -name => qw/bar/] |
16 | ] |
17 | ), "me.id, me.foo.bar, bar", |
18 | "List generator"; |
4769c837 |
19 | |
20 | is SQL::Abstract->generate( |
21 | [ -alias => [ -name => qw/me id/], "foobar", ] |
22 | ), "me.id AS foobar", |
23 | "Alias generator"; |
24 | |
25 | is SQL::Abstract->generate( |
73382d73 |
26 | [ -order_by => [ -name => qw/me date/ ] ] |
27 | ), "ORDER BY me.date"; |
28 | |
29 | is SQL::Abstract->generate( |
30 | [ -order_by => |
31 | [ -name => qw/me date/ ], |
32 | [ -name => qw/me foobar/ ], |
33 | ] |
34 | ), "ORDER BY me.date, me.foobar"; |
35 | |
36 | is SQL::Abstract->generate( |
37 | [ -order_by => [ -desc => [ -name => qw/me date/ ] ] ] |
38 | ), "ORDER BY me.date DESC"; |
39 | |
40 | |
41 | is SQL::Abstract->generate( |
4769c837 |
42 | [ -where => |
7d3908d3 |
43 | [ '>', [-name => qw/me id/], [-value => 500 ] ] |
4769c837 |
44 | ] |
45 | ), "WHERE me.id > ?", "where clause"; |
3e63a4d5 |
46 | |
47 | |
48 | is SQL::Abstract->generate( |
49 | [ -where => |
7d3908d3 |
50 | [ '>', [-name => qw/me id/], [-value => 500 ] ], |
51 | [ '==', [-name => qw/me name/], [-value => '200' ] ] |
3e63a4d5 |
52 | ] |
53 | ), "WHERE me.id > ? AND me.name = ?", "where clause"; |
54 | |
55 | |
56 | is SQL::Abstract->generate( |
57 | [ -where => -or => |
7d3908d3 |
58 | [ '>', [-name => qw/me id/], [-value => 500 ] ], |
59 | [ '==', [-name => qw/me name/], [-value => '200' ] ], |
3e63a4d5 |
60 | ] |
61 | ), "WHERE me.id > ? OR me.name = ?", "where clause"; |
62 | |
63 | |
64 | is SQL::Abstract->generate( |
65 | [ -where => -or => |
7d3908d3 |
66 | [ '>', [-name => qw/me id/], [-value => 500 ] ], |
3e63a4d5 |
67 | [ -or => |
7d3908d3 |
68 | [ '==', [-name => qw/me name/], [-value => '200' ] ], |
69 | [ '==', [-name => qw/me name/], [-value => '100' ] ] |
3e63a4d5 |
70 | ] |
71 | ] |
72 | ), "WHERE me.id > ? OR me.name = ? OR me.name = ?", "where clause"; |
73 | |
74 | is SQL::Abstract->generate( |
75 | [ -where => -or => |
7d3908d3 |
76 | [ '==', [-name => qw/me id/], [-value => 500 ] ], |
3e63a4d5 |
77 | [ -and => |
7d3908d3 |
78 | [ '>', [-name => qw/me name/], [-value => '200' ] ], |
79 | [ '<', [-name => qw/me name/], [-value => '100' ] ] |
3e63a4d5 |
80 | ] |
81 | ] |
865ef15a |
82 | ), "WHERE me.id = ? OR me.name > ? AND me.name < ?", "where clause"; |
83 | |
84 | is SQL::Abstract->generate( |
85 | [ -where => -and => |
86 | [ '==', [-name => qw/me id/], [-value => 500 ] ], |
87 | [ -and => |
88 | [ '>', [-name => qw/me name/], [-value => '200' ] ], |
89 | [ '<', [-name => qw/me name/], [-value => '100' ] ] |
90 | ] |
91 | ] |
92 | ), "WHERE me.id = ? AND me.name > ? AND me.name < ?", "where clause"; |
93 | |
94 | |
95 | is SQL::Abstract->generate( |
96 | [ -where => -and => |
97 | [ '==', [-name => qw/me id/], [-value => 500 ] ], |
98 | [ -or => |
99 | [ '>', [-name => qw/me name/], [-value => '200' ] ], |
100 | [ '<', [-name => qw/me name/], [-value => '100' ] ] |
101 | ] |
102 | ] |
103 | ), "WHERE me.id = ? AND (me.name > ? OR me.name < ?)", "where clause"; |