Fix building on perls with no . in @INC
[dbsrgits/DBIx-Class.git] / t / storage / dbh_do.t
index 82e33d8..07453ea 100644 (file)
@@ -1,13 +1,27 @@
+BEGIN { do "./t/lib/ANFANG.pm" or die ( $@ || $! ) }
+
 use strict;
 use warnings;
 
 use Test::More;
-use lib qw(t/lib);
+
 use DBICTest;
 
 
 my $schema = DBICTest->init_schema();
 my $storage = $schema->storage;
+$storage = $storage->master
+  if $storage->isa('DBIx::Class::Storage::DBI::Replicated');
+
+# test (re)connection
+for my $disconnect (0, 1) {
+  $schema->storage->_dbh->disconnect if $disconnect;
+  is_deeply (
+    $schema->storage->dbh_do(sub { $_[1]->selectall_arrayref('SELECT 1') }),
+    [ [ 1 ] ],
+    'dbh_do on fresh handle worked',
+  );
+}
 
 my @args;
 my $test_func = sub { @args = @_ };
@@ -31,9 +45,11 @@ is_deeply (
   [ $storage, $storage->dbh, "baz", "buz" ],
 );
 
-# test aliasing
+# test nested aliasing
 my $res = 'original';
-$storage->dbh_do (sub { $_[2] = 'changed' }, $res);
+$schema->storage->dbh_do (sub {
+  shift->dbh_do(sub { $_[3] = 'changed' }, @_)
+}, $res);
 
 is ($res, 'changed', "Arguments properly aliased for dbh_do");