refactor code needing version
[dbsrgits/DBIx-Class.git] / t / storage / on_connect_call.t
index 880fa3b..265835c 100644 (file)
@@ -10,8 +10,9 @@ use DBIx::Class::Storage::DBI;
 
 # !!! do not replace this with done_testing - tests reside in the callbacks
 # !!! number of calls is important
-use Test::More tests => 11;
+use Test::More tests => 17;
 # !!!
+use Test::Warn;
 
 my $schema = DBICTest::Schema->clone;
 
@@ -78,3 +79,24 @@ my $schema = DBICTest::Schema->clone;
   $schema->storage->ensure_connected;
   $schema->storage->disconnect; # this should not fire any tests
 }
+
+{
+  ok $schema->connection(
+    sub { DBI->connect(DBICTest->_database, undef, undef, { AutoCommit => 0 } ) },
+    {
+      # method list form
+      on_connect_call => [ sub { ok 1, "on_connect_call after DT parser" }, ],
+      on_disconnect_call => [ sub { ok 1, "on_disconnect_call after DT parser" }, ],
+    },
+  ), 'connection()';
+
+  ok (! $schema->storage->connected, 'start disconnected');
+
+  # this should connect due to the coderef, and also warn due to the false autocommit above
+  warnings_exist {
+    $schema->storage->_determine_driver
+  } qr/The 'RaiseError' of the externally supplied DBI handle is set to false/, 'Warning on clobbered AutoCommit => 0 fired';
+
+  ok ($schema->storage->connected, 'determine driver connects');
+  $schema->storage->disconnect;
+}