4 use Test::More tests => 15;
7 use_ok('SQL::Abstract') or BAIL_OUT( "$@" );
9 my $sqla = SQL::Abstract->new;
10 is $sqla->generate( [ -name => qw/me id/]), "me.id",
11 "Simple name generator";
15 [ -name => qw/me id/],
16 [ -name => qw/me foo bar/],
19 ), "me.id, me.foo.bar, bar",
23 [ -alias => [ -name => qw/me id/], "foobar", ]
28 [ -order_by => [ -name => qw/me date/ ] ]
29 ), "ORDER BY me.date";
33 [ -name => qw/me date/ ],
34 [ -name => qw/me foobar/ ],
36 ), "ORDER BY me.date, me.foobar";
39 [ -order_by => [ -desc => [ -name => qw/me date/ ] ] ]
40 ), "ORDER BY me.date DESC";
45 [ '>', [-name => qw/me id/], [-value => 500 ] ]
47 ), "WHERE me.id > ?", "where clause";
49 eq_or_diff( [ SQL::Abstract->generate(
51 [ '>', [-name => qw/me id/], [-value => 500 ] ],
52 [ '==', [-name => qw/me name/], [-value => '200' ] ]
55 [ "WHERE me.id > ? AND me.name = ?",
66 [ '>', [-name => qw/me id/], [-value => 500 ] ],
67 [ '==', [-name => qw/me name/], [-value => '200' ] ],
69 ), "WHERE me.id > ? OR me.name = ?", "where clause";
74 [ '>', [-name => qw/me id/], [-value => 500 ] ],
76 [ '==', [-name => qw/me name/], [-value => '200' ] ],
77 [ '==', [-name => qw/me name/], [-value => '100' ] ]
80 ), "WHERE me.id > ? OR me.name = ? OR me.name = ?", "where clause";
84 [ '==', [-name => qw/me id/], [-value => 500 ] ],
86 [ '>', [-name => qw/me name/], [-value => '200' ] ],
87 [ '<', [-name => qw/me name/], [-value => '100' ] ]
90 ), "WHERE me.id = ? OR me.name > ? AND me.name < ?", "where clause";
94 [ '==', [-name => qw/me id/], [-value => 500 ] ],
96 [ '>', [-name => qw/me name/], [-value => '200' ] ],
97 [ '<', [-name => qw/me name/], [-value => '100' ] ]
100 ), "WHERE me.id = ? AND me.name > ? AND me.name < ?", "where clause";
105 [ '==', [-name => qw/me id/], [-value => 500 ] ],
107 [ '>', [-name => qw/me name/], [-value => '200' ] ],
108 [ '<', [-name => qw/me name/], [-value => '100' ] ]
111 ), "WHERE me.id = ? AND (me.name > ? OR me.name < ?)", "where clause";
114 [SQL::Abstract->generate(
117 [-name => qw/me id/],
125 [ "WHERE me.id IN (?, ?, ?)",