A few simple order by tests. Not sure i'm happy with the waht of doing asc/desc
[dbsrgits/SQL-Abstract-2.0-ish.git] / t / 001_basic.t
CommitLineData
a0185af2 1use strict;
2use warnings;
3
73382d73 4use Test::More tests => 14;
a0185af2 5
6use_ok('SQL::Abstract') or BAIL_OUT( "$@" );
7
8is SQL::Abstract->generate( [ -name => qw/me id/]), "me.id",
9 "Simple name generator";
10
11is 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
20is SQL::Abstract->generate(
21 [ -alias => [ -name => qw/me id/], "foobar", ]
22), "me.id AS foobar",
23 "Alias generator";
24
25is SQL::Abstract->generate(
73382d73 26 [ -order_by => [ -name => qw/me date/ ] ]
27), "ORDER BY me.date";
28
29is 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
36is SQL::Abstract->generate(
37 [ -order_by => [ -desc => [ -name => qw/me date/ ] ] ]
38), "ORDER BY me.date DESC";
39
40
41is 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
48is 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
56is 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
64is 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
74is 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
84is 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
95is 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";