X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=t%2F10test.t;h=8d02f4e95909ac6bd29d1df8932086470f005ac6;hb=df7b1db3fac6b264486bde43d4ef250035126885;hp=f3835a1a96d6a91bf1d4c73569cb81a3b30de0de;hpb=0c2de280869928d9ff1ee95f36a9a45318766990;p=dbsrgits%2FSQL-Abstract.git diff --git a/t/10test.t b/t/10test.t index f3835a1..8d02f4e 100644 --- a/t/10test.t +++ b/t/10test.t @@ -1,14 +1,11 @@ -#!/usr/bin/perl - use strict; use warnings; -use List::Util qw(sum); use Test::More; -use Data::Dumper; -$Data::Dumper::Terse = 1; -$Data::Dumper::Sortkeys = 1; +use SQL::Abstract::Test import => [qw( + eq_sql_bind eq_sql eq_bind is_same_sql_bind dumper $sql_differ +)]; my @sql_tests = ( # WHERE condition - equal @@ -611,6 +608,20 @@ my @sql_tests = ( ], }, { + equal => 1, + statements => [ + q/ORDER BY colA, colB LIKE ? DESC, colC LIKE ?/, + q/ORDER BY colA ASC, colB LIKE ? DESC, colC LIKE ? ASC/, + ], + }, + { + equal => 1, + statements => [ + q/ORDER BY name + ?, [me].[id]/, + q/ORDER BY name + ? ASC, [me].[id]/, + ], + }, + { equal => 0, opts => { order_by_asc_significant => 1 }, statements => [ @@ -759,6 +770,14 @@ my @sql_tests = ( ) AND [source] = ? ) )', ], }, + { + equal => 1, + statements => [ + 'WHERE foo = ? FETCH FIRST 1 ROWS ONLY', + 'WHERE ( foo = ? ) FETCH FIRST 1 ROWS ONLY', + 'WHERE (( foo = ? )) FETCH FIRST 1 ROWS ONLY', + ], + }, ); my @bind_tests = ( @@ -953,24 +972,7 @@ my @bind_tests = ( }, ); -plan tests => 1 + - sum( - map { $_ * ($_ - 1) / 2 } - map { scalar @{$_->{statements}} } - @sql_tests - ) + - sum( - map { $_ * ($_ - 1) / 2 } - map { scalar @{$_->{bindvals}} } - @bind_tests - ) + - 9; - -use_ok('SQL::Abstract::Test', import => [qw( - eq_sql_bind eq_sql eq_bind is_same_sql_bind -)]); - -for my $test (@sql_tests) { +for my $test ( @sql_tests ) { # this does not work on 5.8.8 and earlier :( #local @{*SQL::Abstract::Test::}{keys %{$test->{opts}}} = map { \$_ } values %{$test->{opts}} @@ -1001,11 +1003,11 @@ for my $test (@sql_tests) { if ($equal ^ $test->{equal}) { my ($ast1, $ast2) = map { SQL::Abstract::Test::parse ($_) } ($sql1, $sql2); - $_ = Dumper $_ for ($ast1, $ast2); + $_ = dumper($_) for ($ast1, $ast2); diag "sql1: $sql1"; diag "sql2: $sql2"; - note $SQL::Abstract::Test::sql_differ; + note $sql_differ || 'No differences found'; note "ast1: $ast1"; note "ast2: $ast2"; } @@ -1030,8 +1032,8 @@ for my $test (@bind_tests) { } if ($equal ^ $test->{equal}) { - diag("bind1: " . Dumper($bind1)); - diag("bind2: " . Dumper($bind2)); + diag("bind1: " . dumper($bind1)); + diag("bind2: " . dumper($bind2)); } } } @@ -1065,7 +1067,7 @@ ok (! eq_sql ( 'SELECT owner_name FROM books me WHERE ( sUOrce = ? )', )); like( - $SQL::Abstract::Test::sql_differ, + $sql_differ, qr/\Q[ source ] != [ sUOrce ]/, 'expected debug of literal diff', ); @@ -1075,7 +1077,7 @@ ok (! eq_sql ( 'SELECT owner_name FROM books me GROUP BY owner_name', )); like( - $SQL::Abstract::Test::sql_differ, + $sql_differ, qr/\QOP [ORDER BY] != [GROUP BY]/, 'expected debug of op diff', ); @@ -1086,8 +1088,9 @@ ok (! eq_sql ( )); like( - $SQL::Abstract::Test::sql_differ, + $sql_differ, qr|\Q[WHERE source = ?] != [N/A]|, 'expected debug of missing branch', ); +done_testing;