Produce half decent where clauses
[dbsrgits/SQL-Abstract-2.0-ish.git] / t / 001_basic.t
CommitLineData
a0185af2 1use strict;
2use warnings;
3
3e63a4d5 4use Test::More tests => 9;
a0185af2 5
6use_ok('SQL::Abstract') or BAIL_OUT( "$@" );
7
3e63a4d5 8 $DB::single = 1;
a0185af2 9is SQL::Abstract->generate( [ -name => qw/me id/]), "me.id",
10 "Simple name generator";
11
12is 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
21is SQL::Abstract->generate(
22 [ -alias => [ -name => qw/me id/], "foobar", ]
23), "me.id AS foobar",
24 "Alias generator";
25
26is SQL::Abstract->generate(
27 [ -where =>
28 [ '>', [-name => qw/me.id/], [-value => 500 ] ]
29 ]
30), "WHERE me.id > ?", "where clause";
3e63a4d5 31
32
33is 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
41is 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
49is 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
59is 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";