X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=t%2F95sql_maker.t;h=629eed6061d4b6421c4decc16e7374bb904f19b9;hb=98d4e1b45228b4052deb1672b47d1df19e7def28;hp=900e6048a30b3c569ceb407e4c0c37ab298f8785;hpb=89479564f69e12460c2740d1d74c6a1253af18cb;p=dbsrgits%2FDBIx-Class.git diff --git a/t/95sql_maker.t b/t/95sql_maker.t index 900e604..629eed6 100644 --- a/t/95sql_maker.t +++ b/t/95sql_maker.t @@ -2,28 +2,19 @@ use strict; use warnings; use Test::More; -use SQL::Abstract::Test import => ['is_same_sql_bind']; - - -BEGIN { - eval "use DBD::SQLite"; - plan $@ - ? ( skip_all => 'needs DBD::SQLite for testing' ) - : ( tests => 3 ); -} +use Test::Exception; use lib qw(t/lib); +use DBIC::SqlMakerTest; use_ok('DBICTest'); -my $schema = DBICTest->init_schema(); +my $schema = DBICTest->init_schema(no_deploy => 1); my $sql_maker = $schema->storage->sql_maker; -SKIP: { - skip "SQL::Abstract < 1.50 does not pass through arrayrefs", 2 if $SQL::Abstract::VERSION < 1.50; - +{ my ($sql, @bind) = $sql_maker->insert( 'lottery', { @@ -55,3 +46,34 @@ SKIP: { 'sql_maker passes arrayrefs in update' ); } + +# make sure the cookbook caveat of { $op, \'...' } no longer applies +{ + my ($sql, @bind) = $sql_maker->where({ + last_attempt => \ '< now() - interval "12 hours"', + next_attempt => { '<', \ 'now() - interval "12 hours"' }, + created => [ + { '<=', \ '1969' }, + \ '> 1984', + ], + }); + is_same_sql_bind( + $sql, + \@bind, + 'WHERE + (created <= 1969 OR created > 1984 ) + AND last_attempt < now() - interval "12 hours" + AND next_attempt < now() - interval "12 hours" + ', + [], + ); +} + +# Make sure the carp/croak override in SQLA works (via SQLAHacks) +my $file = __FILE__; +$file = "\Q$file\E"; +throws_ok (sub { + $schema->resultset ('Artist')->search ({}, { order_by => { -asc => 'stuff', -desc => 'staff' } } )->as_query; +}, qr/$file/, 'Exception correctly croak()ed'); + +done_testing;