95b45e23e7543669af651e1412853dc34205a4ac
[dbsrgits/SQL-Abstract-2.0-ish.git] / t / 001_basic.t
1 use strict;
2 use warnings;
3
4 use Test::More tests => 11;
5 use Test::Differences;
6
7 use_ok('SQL::Abstract') or BAIL_OUT( "$@" );
8
9 my $sqla = SQL::Abstract->create(1);
10
11 # TODO: once MXMS supports %args, use that here
12 is $sqla->dispatch( [ -name => qw/me id/]), "me.id",
13   "Simple name generator";
14
15 is $sqla->dispatch( [ -name => qw/me */]), 
16    "me.*",
17    "Simple name generator";
18
19 $sqla->quote_chars(['`']);
20
21 is $sqla->dispatch( [ -name => qw/me */]), 
22    "`me`.*",
23    "Simple name generator";
24
25 $sqla->disable_quoting;
26
27 is $sqla->dispatch(
28   [ '-false' ]
29 ), "0 = 1", "false value";
30
31 is $sqla->dispatch(
32   [ '-true' ]
33 ), "1 = 1", "true value";
34
35 is $sqla->dispatch(
36   [ -list => 
37     [ -name => qw/me id/],
38     [ -name => qw/me foo bar/],
39     [ -name => qw/bar/]
40   ] 
41 ), "me.id, me.foo.bar, bar",
42   "List generator";
43
44 is $sqla->dispatch(
45   [ -alias => [ -name => qw/me id/], "foobar", ] 
46 ), "me.id AS foobar",
47   "Alias generator";
48
49 is $sqla->dispatch(
50   [ -order_by => [ -name => qw/me date/ ] ]
51 ), "ORDER BY me.date",
52    "order by";
53
54 is $sqla->dispatch(
55   [ -order_by => 
56     [ -name => qw/me date/ ],
57     [ -name => qw/me foobar/ ],
58   ]
59 ), "ORDER BY me.date, me.foobar",
60    "order by";
61
62 is $sqla->dispatch(
63   [ -order_by => [ -desc => [ -name => qw/me date/ ] ] ]
64 ), "ORDER BY me.date DESC",
65    "order by desc";
66
67