Quote table name when inserting DEFAULT VALUES
[dbsrgits/DBIx-Class.git] / t / 18insert_default.t
index c3f9369..cd49cec 100644 (file)
@@ -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;