X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=t%2F05in_between.t;fp=t%2F05in_between.t;h=733615874b857a51b0eb8dcc2b91c009ba458b1e;hb=c771453abebe09026dad9f31fa2b64971aff2616;hp=12a5658e5f034c0eb000cd5a73e9edaefa22ad0e;hpb=10e6c94609fc94467ef8f281ffe192d8038ffc9e;p=dbsrgits%2FSQL-Abstract.git diff --git a/t/05in_between.t b/t/05in_between.t index 12a5658..7336158 100644 --- a/t/05in_between.t +++ b/t/05in_between.t @@ -3,7 +3,7 @@ use strict; use warnings; use Test::More; -use Test::Exception; +use Test::Fatal; use SQL::Abstract::Test import => ['is_same_sql_bind']; use Data::Dumper; @@ -75,7 +75,7 @@ my @in_between_tests = ( ] }, }, stmt => "WHERE ( - ( start0 BETWEEN ? AND UPPER ? ) + ( start0 BETWEEN ? AND UPPER(?) ) AND ( start1 BETWEEN ? AND ? ) AND ( start2 BETWEEN lower(x) AND upper(y) ) AND ( start3 BETWEEN lower(x) AND upper(?) ) @@ -95,7 +95,7 @@ my @in_between_tests = ( ] }, }, stmt => "WHERE ( - ( start0 BETWEEN ? AND UPPER ? ) + ( start0 BETWEEN ? AND UPPER(?) ) AND ( start1 BETWEEN ? AND ? ) AND ( start2 BETWEEN lower(x) AND upper(y) ) AND ( start3 BETWEEN lower(x) AND upper(?) ) @@ -168,20 +168,20 @@ my @in_between_tests = ( }, { where => { x => { -in => [ \['LOWER(?)', 'A' ], \'LOWER(b)', { -lower => 'c' } ] } }, - stmt => " WHERE ( x IN ( LOWER(?), LOWER(b), LOWER ? ) )", + stmt => " WHERE ( x IN ( LOWER(?), LOWER(b), LOWER(?) ) )", bind => [qw/A c/], test => '-in with an array of function array refs with args', }, { where => { x => { -in => [ 1, undef ] } }, - stmt => " WHERE ( x IN ( ?, NULL ) )", - bind => [ 1 ], + stmt => " WHERE ( x IN ( ?, ? ) )", + bind => [ 1, undef ], test => '-in with undef as an element', }, { where => { x => { -in => [ 1, undef, 2, 3, undef ] } }, - stmt => " WHERE ( x IN ( ?, NULL, ?, ?, NULL ) )", - bind => [ 1, 2, 3 ], + stmt => " WHERE ( x IN ( ?, ?, ?, ?, ? ) )", + bind => [ 1, undef, 2, 3, undef ], test => '-in with undef as an element', }, ); @@ -193,24 +193,23 @@ for my $case (@in_between_tests) { local $Data::Dumper::Terse = 1; - lives_ok (sub { + ok(!(my $e = exception { my @w; local $SIG{__WARN__} = sub { push @w, @_ }; my $sql = SQL::Abstract->new ($case->{args} || {}); - lives_ok (sub { - my ($stmt, @bind) = $sql->where($case->{where}); - is_same_sql_bind( - $stmt, - \@bind, - $case->{stmt}, - $case->{bind}, - ) - || diag "Search term:\n" . Dumper $case->{where}; - }); + my ($stmt, @bind) = $sql->where($case->{where}); + is_same_sql_bind( + $stmt, + \@bind, + $case->{stmt}, + $case->{bind}, + ) + || diag "Search term:\n" . Dumper $case->{where}; is (@w, 0, $case->{test} || 'No warnings within in-between tests') || diag join "\n", 'Emitted warnings:', @w; - }, "$case->{test} doesn't die"); + }), "$case->{test} doesn't die"); + diag "Error: $e\n Search term:\n".Dumper($case->{where}) if $e; } }