Commit | Line | Data |
a0185af2 |
1 | use strict; |
2 | use warnings; |
3 | |
3e63a4d5 |
4 | use Test::More tests => 9; |
a0185af2 |
5 | |
6 | use_ok('SQL::Abstract') or BAIL_OUT( "$@" ); |
7 | |
3e63a4d5 |
8 | $DB::single = 1; |
a0185af2 |
9 | is SQL::Abstract->generate( [ -name => qw/me id/]), "me.id", |
10 | "Simple name generator"; |
11 | |
12 | is SQL::Abstract->generate( |
13 | [ -list => |
14 | [ -name => qw/me id/], |
15 | [ -name => qw/me foo bar/], |
16 | [ -name => qw/bar/] |
17 | ] |
18 | ), "me.id, me.foo.bar, bar", |
19 | "List generator"; |
4769c837 |
20 | |
21 | is SQL::Abstract->generate( |
22 | [ -alias => [ -name => qw/me id/], "foobar", ] |
23 | ), "me.id AS foobar", |
24 | "Alias generator"; |
25 | |
26 | is SQL::Abstract->generate( |
27 | [ -where => |
28 | [ '>', [-name => qw/me.id/], [-value => 500 ] ] |
29 | ] |
30 | ), "WHERE me.id > ?", "where clause"; |
3e63a4d5 |
31 | |
32 | |
33 | is SQL::Abstract->generate( |
34 | [ -where => |
35 | [ '>', [-name => qw/me.id/], [-value => 500 ] ], |
36 | [ '==', [-name => qw/me.name/], [-value => '200' ] ] |
37 | ] |
38 | ), "WHERE me.id > ? AND me.name = ?", "where clause"; |
39 | |
40 | |
41 | is SQL::Abstract->generate( |
42 | [ -where => -or => |
43 | [ '>', [-name => qw/me.id/], [-value => 500 ] ], |
44 | [ '==', [-name => qw/me.name/], [-value => '200' ] ], |
45 | ] |
46 | ), "WHERE me.id > ? OR me.name = ?", "where clause"; |
47 | |
48 | |
49 | is SQL::Abstract->generate( |
50 | [ -where => -or => |
51 | [ '>', [-name => qw/me.id/], [-value => 500 ] ], |
52 | [ -or => |
53 | [ '==', [-name => qw/me.name/], [-value => '200' ] ], |
54 | [ '==', [-name => qw/me.name/], [-value => '100' ] ] |
55 | ] |
56 | ] |
57 | ), "WHERE me.id > ? OR me.name = ? OR me.name = ?", "where clause"; |
58 | |
59 | is SQL::Abstract->generate( |
60 | [ -where => -or => |
61 | [ '==', [-name => qw/me.id/], [-value => 500 ] ], |
62 | [ -and => |
63 | [ '>', [-name => qw/me.name/], [-value => '200' ] ], |
64 | [ '<', [-name => qw/me.name/], [-value => '100' ] ] |
65 | ] |
66 | ] |
67 | ), "WHERE me.id = ? OR (me.name > ? AND me.name < ?)", "where clause"; |