X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=t%2F001_basic.t;h=224c81b9f515b2b136bb8cde2235d8fb94e3239c;hb=5bf8c024d27e974336be6ece34f1d4f0cf998fce;hp=d3aecc3473f15c3d1260542ab1443c61bf475658;hpb=73382d73662f8af9f6774a4f3a86ed9d453e2a2d;p=dbsrgits%2FSQL-Abstract-2.0-ish.git diff --git a/t/001_basic.t b/t/001_basic.t index d3aecc3..224c81b 100644 --- a/t/001_basic.t +++ b/t/001_basic.t @@ -2,13 +2,15 @@ use strict; use warnings; use Test::More tests => 14; +use Test::Differences; use_ok('SQL::Abstract') or BAIL_OUT( "$@" ); -is SQL::Abstract->generate( [ -name => qw/me id/]), "me.id", +my $sqla = SQL::Abstract->new; +is $sqla->generate( [ -name => qw/me id/]), "me.id", "Simple name generator"; -is SQL::Abstract->generate( +is $sqla->generate( [ -list => [ -name => qw/me id/], [ -name => qw/me foo bar/], @@ -17,43 +19,49 @@ is SQL::Abstract->generate( ), "me.id, me.foo.bar, bar", "List generator"; -is SQL::Abstract->generate( +is $sqla->generate( [ -alias => [ -name => qw/me id/], "foobar", ] ), "me.id AS foobar", "Alias generator"; -is SQL::Abstract->generate( +is $sqla->generate( [ -order_by => [ -name => qw/me date/ ] ] ), "ORDER BY me.date"; -is SQL::Abstract->generate( +is $sqla->generate( [ -order_by => [ -name => qw/me date/ ], [ -name => qw/me foobar/ ], ] ), "ORDER BY me.date, me.foobar"; -is SQL::Abstract->generate( +is $sqla->generate( [ -order_by => [ -desc => [ -name => qw/me date/ ] ] ] ), "ORDER BY me.date DESC"; -is SQL::Abstract->generate( +is $sqla->generate( [ -where => [ '>', [-name => qw/me id/], [-value => 500 ] ] ] ), "WHERE me.id > ?", "where clause"; - -is SQL::Abstract->generate( - [ -where => - [ '>', [-name => qw/me id/], [-value => 500 ] ], - [ '==', [-name => qw/me name/], [-value => '200' ] ] - ] -), "WHERE me.id > ? AND me.name = ?", "where clause"; - - -is SQL::Abstract->generate( +eq_or_diff( [ SQL::Abstract->generate( + [ -where => + [ '>', [-name => qw/me id/], [-value => 500 ] ], + [ '==', [-name => qw/me name/], [-value => '200' ] ] + ] + ) ], + [ "WHERE me.id > ? AND me.name = ?", + [ 500, + '200' + ] + ], + "Where with binds" +); + + +is $sqla->generate( [ -where => -or => [ '>', [-name => qw/me id/], [-value => 500 ] ], [ '==', [-name => qw/me name/], [-value => '200' ] ], @@ -61,7 +69,7 @@ is SQL::Abstract->generate( ), "WHERE me.id > ? OR me.name = ?", "where clause"; -is SQL::Abstract->generate( +is $sqla->generate( [ -where => -or => [ '>', [-name => qw/me id/], [-value => 500 ] ], [ -or => @@ -71,7 +79,7 @@ is SQL::Abstract->generate( ] ), "WHERE me.id > ? OR me.name = ? OR me.name = ?", "where clause"; -is SQL::Abstract->generate( +is $sqla->generate( [ -where => -or => [ '==', [-name => qw/me id/], [-value => 500 ] ], [ -and => @@ -81,7 +89,7 @@ is SQL::Abstract->generate( ] ), "WHERE me.id = ? OR me.name > ? AND me.name < ?", "where clause"; -is SQL::Abstract->generate( +is $sqla->generate( [ -where => -and => [ '==', [-name => qw/me id/], [-value => 500 ] ], [ -and => @@ -92,7 +100,7 @@ is SQL::Abstract->generate( ), "WHERE me.id = ? AND me.name > ? AND me.name < ?", "where clause"; -is SQL::Abstract->generate( +is $sqla->generate( [ -where => -and => [ '==', [-name => qw/me id/], [-value => 500 ] ], [ -or =>