X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=t%2F01generate.t;h=319f1a90079cce0459d12818ee4777c98e4538a0;hb=5db47f9fe6d06048b35092378a04e3a292d03a19;hp=2362e6c3d729a19f00f99bb9c0981d100b13757a;hpb=c461c25c909bf7be7f4562f564a82af90b6fb71a;p=scpubgit%2FQ-Branch.git diff --git a/t/01generate.t b/t/01generate.t index 2362e6c..319f1a9 100644 --- a/t/01generate.t +++ b/t/01generate.t @@ -4,8 +4,7 @@ use strict; use warnings; use Test::More; -use SQL::Abstract::Test qw/is_same_sql_bind/; -plan tests => 64; +use SQL::Abstract::Test import => ['is_same_sql_bind']; use SQL::Abstract; @@ -308,10 +307,71 @@ my @tests = ( stmt => q{SELECT * FROM test WHERE ( a = to_date(?, 'MM/DD/YY') )}, stmt_q => q{SELECT * FROM `test` WHERE ( `a` = to_date(?, 'MM/DD/YY') )}, bind => ['02/02/02'], - } + }, + #33 + { + func => 'insert', + new => {array_datatypes => 1}, + args => ['test', {a => 1, b => [1, 1, 2, 3, 5, 8]}], + stmt => 'INSERT INTO test (a, b) VALUES (?, ?)', + stmt_q => 'INSERT INTO `test` (`a`, `b`) VALUES (?, ?)', + bind => [1, [1, 1, 2, 3, 5, 8]], + }, + #34 + { + func => 'insert', + new => {bindtype => 'columns', array_datatypes => 1}, + args => ['test', {a => 1, b => [1, 1, 2, 3, 5, 8]}], + stmt => 'INSERT INTO test (a, b) VALUES (?, ?)', + stmt_q => 'INSERT INTO `test` (`a`, `b`) VALUES (?, ?)', + bind => [[a => 1], [b => [1, 1, 2, 3, 5, 8]]], + }, + #35 + { + func => 'update', + new => {array_datatypes => 1}, + args => ['test', {a => 1, b => [1, 1, 2, 3, 5, 8]}], + stmt => 'UPDATE test SET a = ?, b = ?', + stmt_q => 'UPDATE `test` SET `a` = ?, `b` = ?', + bind => [1, [1, 1, 2, 3, 5, 8]], + }, + #36 + { + func => 'update', + new => {bindtype => 'columns', array_datatypes => 1}, + args => ['test', {a => 1, b => [1, 1, 2, 3, 5, 8]}], + stmt => 'UPDATE test SET a = ?, b = ?', + stmt_q => 'UPDATE `test` SET `a` = ?, `b` = ?', + bind => [[a => 1], [b => [1, 1, 2, 3, 5, 8]]], + }, + #37 + { + func => 'select', + args => ['test', '*', { a => {'>', \'1 + 1'}, b => 8 }], + stmt => 'SELECT * FROM test WHERE ( a > 1 + 1 AND b = ? )', + stmt_q => 'SELECT * FROM `test` WHERE ( `a` > 1 + 1 AND `b` = ? )', + bind => [8], + }, + #38 + { + func => 'select', + args => ['test', '*', { a => {'<' => \["to_date(?, 'MM/DD/YY')", '02/02/02']}, b => 8 }], + stmt => 'SELECT * FROM test WHERE ( a < to_date(?, \'MM/DD/YY\') AND b = ? )', + stmt_q => 'SELECT * FROM `test` WHERE ( `a` < to_date(?, \'MM/DD/YY\') AND `b` = ? )', + bind => ['02/02/02', 8], + }, + #39 + { #TODO in SQLA >= 2.0 it will die instead (we kept this just because old SQLA passed it through) + func => 'insert', + args => ['test', {a => 1, b => 2, c => 3, d => 4, e => { answer => 42 }}], + stmt => 'INSERT INTO test (a, b, c, d, e) VALUES (?, ?, ?, ?, ?)', + stmt_q => 'INSERT INTO `test` (`a`, `b`, `c`, `d`, `e`) VALUES (?, ?, ?, ?, ?)', + bind => [qw/1 2 3 4/, { answer => 42}], + }, ); -use Data::Dumper; + +plan tests => scalar(@tests) * 2; for (@tests) { local $"=', '; @@ -333,5 +393,3 @@ for (@tests) { is_same_sql_bind($stmt_q, \@bind_q, $_->{stmt_q}, $_->{bind}); } - -