X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=dbsrgits%2FDBIx-Class.git;a=blobdiff_plain;f=t%2F18insert_default.t;h=cd49cecb9be31077a619e96a373d072eb9f507c1;hp=c3f93693e54b697a72a4947998126de5414d6f57;hb=20595c02ab4627497090c5081506c1fbac3dd57d;hpb=e366f8071f0797f739114539858e59bd3aea3baa diff --git a/t/18insert_default.t b/t/18insert_default.t index c3f9369..cd49cec 100644 --- a/t/18insert_default.t +++ b/t/18insert_default.t @@ -2,30 +2,48 @@ use strict; use warnings; use Test::More; +use Test::Exception; use lib qw(t/lib); use DBICTest; - -my $tests = 3; -plan tests => $tests; +use DBIC::DebugObj; +use DBIC::SqlMakerTest; my $schema = DBICTest->init_schema(); +$schema->storage->sql_maker->quote_char('"'); + my $rs = $schema->resultset ('Artist'); my $last_obj = $rs->search ({}, { order_by => { -desc => 'artistid' }, rows => 1})->single; my $last_id = $last_obj ? $last_obj->artistid : 0; + +my ($sql, @bind); +my $orig_debugobj = $schema->storage->debugobj; +my $orig_debug = $schema->storage->debug; + +$schema->storage->debugobj (DBIC::DebugObj->new (\$sql, \@bind) ); +$schema->storage->debug (1); + my $obj; -eval { $obj = $rs->create ({}) }; -my $err = $@; +lives_ok { $obj = $rs->create ({}) } 'Default insert successful'; + +$schema->storage->debugobj ($orig_debugobj); +$schema->storage->debug ($orig_debug); + +is_same_sql_bind ( + $sql, + \@bind, + 'INSERT INTO "artist" DEFAULT VALUES', + [], + 'Default-value insert correct SQL', +); ok ($obj, 'Insert defaults ( $rs->create ({}) )' ); -SKIP: { - skip "Default insert failed: $err", $tests-1 if $err; - # this should be picked up without calling the DB again - is ($obj->artistid, $last_id + 1, 'Autoinc PK works'); +# this should be picked up without calling the DB again +is ($obj->artistid, $last_id + 1, 'Autoinc PK works'); - # for this we need to refresh - $obj->discard_changes; - is ($obj->rank, 13, 'Default value works'); -} +# for this we need to refresh +$obj->discard_changes; +is ($obj->rank, 13, 'Default value works'); +done_testing;