1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46
|
#!perl
use strict;
use warnings;
use lib 't/lib';
use DBDOracleTestLib qw/ oracle_test_dsn db_handle /;
use DBI;
use DBD::Oracle(qw(:ora_fail_over));
#use Devel::Peek qw(SvREFCNT Dump);
use Test::More;
$| = 1;
# create a database handle
my $dbh = db_handle()
or plan skip_all => 'Unable to connect to Oracle';
$dbh->disconnect;
if ( !$dbh->ora_can_taf ) {
eval {
$dbh = db_handle( { ora_taf_function => 'taf' } );
};
my $ev = $@;
like( $ev, qr/You are attempting to enable TAF/, "'$ev' (expected)" );
}
else {
ok $dbh = db_handle( { ora_taf_function => 'taf' } );
is( $dbh->{ora_taf_function}, 'taf', 'TAF callback' );
my $x = sub { };
# diag(SvREFCNT($x));
# diag(Dump($x));
$dbh->{ora_taf_function} = $x;
is( ref( $dbh->{ora_taf_function} ), 'CODE', 'TAF code ref' );
# diag(SvREFCNT($x));
}
done_testing();
|