From af4aec38fa868a5e54f10c9c65f2155a923fc3ae Mon Sep 17 00:00:00 2001 From: Kenichi Ishigaki Date: Mon, 7 May 2012 02:38:49 +0000 Subject: [PATCH] fixed the params mismatch test --- t/rt_67581_bind_params_mismatch.t | 40 ++++++++++++++++++++++++------- 1 file changed, 31 insertions(+), 9 deletions(-) diff --git a/t/rt_67581_bind_params_mismatch.t b/t/rt_67581_bind_params_mismatch.t index c0d4b52..92f1fe7 100644 --- a/t/rt_67581_bind_params_mismatch.t +++ b/t/rt_67581_bind_params_mismatch.t @@ -7,7 +7,7 @@ BEGIN { } use t::lib::Test qw/connect_ok/; -use Test::More tests => 38; +use Test::More tests => 34; use DBI qw/:sql_types/; my $id = 0; @@ -97,12 +97,23 @@ for my $has_pk (0..1) { $sth->bind_param(1, ++$id); $sth->bind_param(2, 3.5, SQL_INTEGER); my $ret = eval { $sth->execute }; - ok $@, "died correctly"; - ok !defined $ret, "returns undef"; - ok $sth->errstr && $sth->errstr =~ /datatype mismatch/, "insert failed: type mismatch"; + + if ($has_pk) { + ok $@, "died correctly"; + ok !defined $ret, "returns undef"; + ok $sth->errstr && $sth->errstr =~ /datatype mismatch/, "insert failed: type mismatch"; + } + else { + ok defined $ret, "inserted without errors"; + } my ($value) = $dbh->selectrow_array('select v from foo where id = ?', undef, $id); - ok !$value, "not inserted/indexed"; + if ($has_pk) { + ok !$value, "not inserted/indexed"; + } + else { + ok $value && $value eq '3.5', "got correct value"; + } } { @@ -112,12 +123,23 @@ for my $has_pk (0..1) { # only dies if type is explicitly specified my $ret = eval { $sth->execute }; - ok $@, "died correctly"; - ok !defined $ret, "returns undef"; - ok $sth->errstr && $sth->errstr =~ /datatype mismatch/, "insert failed: type mismatch"; + + if ($has_pk) { + ok $@, "died correctly"; + ok !defined $ret, "returns undef"; + ok $sth->errstr && $sth->errstr =~ /datatype mismatch/, "insert failed: type mismatch"; + } + else { + ok defined $ret, "inserted without errors"; + } my ($value) = $dbh->selectrow_array('select v from foo where id = ?', undef, $id); - ok !$value, "not inserted/indexed"; + if ($has_pk) { + ok !$value, "not inserted/indexed"; + } + else { + ok $value && $value eq 'qux', "got correct value"; + } } $dbh->disconnect;