4 use Test::More tests => 14;
6 use_ok('SQL::Abstract') or BAIL_OUT( "$@" );
8 is SQL::Abstract->generate( [ -name => qw/me id/]), "me.id",
9 "Simple name generator";
11 is SQL::Abstract->generate(
13 [ -name => qw/me id/],
14 [ -name => qw/me foo bar/],
17 ), "me.id, me.foo.bar, bar",
20 is SQL::Abstract->generate(
21 [ -alias => [ -name => qw/me id/], "foobar", ]
25 is SQL::Abstract->generate(
26 [ -order_by => [ -name => qw/me date/ ] ]
27 ), "ORDER BY me.date";
29 is SQL::Abstract->generate(
31 [ -name => qw/me date/ ],
32 [ -name => qw/me foobar/ ],
34 ), "ORDER BY me.date, me.foobar";
36 is SQL::Abstract->generate(
37 [ -order_by => [ -desc => [ -name => qw/me date/ ] ] ]
38 ), "ORDER BY me.date DESC";
41 is SQL::Abstract->generate(
43 [ '>', [-name => qw/me id/], [-value => 500 ] ]
45 ), "WHERE me.id > ?", "where clause";
48 is SQL::Abstract->generate(
50 [ '>', [-name => qw/me id/], [-value => 500 ] ],
51 [ '==', [-name => qw/me name/], [-value => '200' ] ]
53 ), "WHERE me.id > ? AND me.name = ?", "where clause";
56 is SQL::Abstract->generate(
58 [ '>', [-name => qw/me id/], [-value => 500 ] ],
59 [ '==', [-name => qw/me name/], [-value => '200' ] ],
61 ), "WHERE me.id > ? OR me.name = ?", "where clause";
64 is SQL::Abstract->generate(
66 [ '>', [-name => qw/me id/], [-value => 500 ] ],
68 [ '==', [-name => qw/me name/], [-value => '200' ] ],
69 [ '==', [-name => qw/me name/], [-value => '100' ] ]
72 ), "WHERE me.id > ? OR me.name = ? OR me.name = ?", "where clause";
74 is SQL::Abstract->generate(
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 > ? AND me.name < ?", "where clause";
84 is SQL::Abstract->generate(
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 = ? AND me.name > ? AND me.name < ?", "where clause";
95 is SQL::Abstract->generate(
97 [ '==', [-name => qw/me id/], [-value => 500 ] ],
99 [ '>', [-name => qw/me name/], [-value => '200' ] ],
100 [ '<', [-name => qw/me name/], [-value => '100' ] ]
103 ), "WHERE me.id = ? AND (me.name > ? OR me.name < ?)", "where clause";