4 use Test::More tests => 15;
7 use_ok('SQL::Abstract') or BAIL_OUT( "$@" );
9 # TODO: once MXMS supports %args, use that here
10 my $sqla = SQL::Abstract->create(1);
11 is $sqla->dispatch( [ -name => qw/me id/]), "me.id",
12 "Simple name generator";
16 [ -name => qw/me id/],
17 [ -name => qw/me foo bar/],
20 ), "me.id, me.foo.bar, bar",
24 [ -alias => [ -name => qw/me id/], "foobar", ]
29 [ -order_by => [ -name => qw/me date/ ] ]
30 ), "ORDER BY me.date";
34 [ -name => qw/me date/ ],
35 [ -name => qw/me foobar/ ],
37 ), "ORDER BY me.date, me.foobar";
40 [ -order_by => [ -desc => [ -name => qw/me date/ ] ] ]
41 ), "ORDER BY me.date DESC";
46 [ '>', [-name => qw/me id/], [-value => 500 ] ]
48 ), "WHERE me.id > ?", "where clause";
50 eq_or_diff( [ SQL::Abstract->generate(
53 [ '>', [-name => qw/me id/], [-value => 500 ] ],
54 [ '==', [-name => qw/me name/], [-value => '200' ] ]
57 [ "WHERE me.id > ? AND me.name = ?",
68 [ '>', [-name => qw/me id/], [-value => 500 ] ],
69 [ '==', [-name => qw/me name/], [-value => '200' ] ],
71 ), "WHERE me.id > ? OR me.name = ?", "where clause";
76 [ '>', [-name => qw/me id/], [-value => 500 ] ],
78 [ '==', [-name => qw/me name/], [-value => '200' ] ],
79 [ '==', [-name => qw/me name/], [-value => '100' ] ]
82 ), "WHERE me.id > ? OR me.name = ? OR me.name = ?", "where clause";
86 [ '==', [-name => qw/me id/], [-value => 500 ] ],
88 [ '>', [-name => qw/me name/], [-value => '200' ] ],
89 [ '<', [-name => qw/me name/], [-value => '100' ] ]
92 ), "WHERE me.id = ? OR me.name > ? AND me.name < ?", "where clause";
96 [ '==', [-name => qw/me id/], [-value => 500 ] ],
98 [ '>', [-name => qw/me name/], [-value => '200' ] ],
99 [ '<', [-name => qw/me name/], [-value => '100' ] ]
102 ), "WHERE me.id = ? AND me.name > ? AND me.name < ?", "where clause";
107 [ '==', [-name => qw/me id/], [-value => 500 ] ],
109 [ '>', [-name => qw/me name/], [-value => '200' ] ],
110 [ '<', [-name => qw/me name/], [-value => '100' ] ]
113 ), "WHERE me.id = ? AND (me.name > ? OR me.name < ?)", "where clause";
116 [SQL::Abstract->generate(
120 [-name => qw/me id/],
128 [ "WHERE me.id IN (?, ?, ?)",